Jee*_*one 9 mysql group-by sum count
我想SUM了COUNT一个查询,如下所示.此查询为每行正确返回计数(1),但不确定如何将它们全部添加.
SELECT COUNT(*), jss_orders_headers.* FROM jss_orders_headers
LEFT JOIN jss_orders_extrafields
ON jss_orders_headers.orderID = jss_orders_extrafields.orderID
AND jss_orders_extrafields.extraFieldID = 5
GROUP BY jss_orders_headers.orderID
ORDER BY jss_orders_headers.orderID DESC
Run Code Online (Sandbox Code Playgroud)
表结构是
orderID等
exid,orderID,extrafieldID,extrafieldName,content
目前返回的数据如下:
1 | 99
1 | 104
1 | 106
我需要返回SUM的的COUNT()列.所以在上面的3个例子中我会回来3.
非常感谢
Tar*_*ryn 19
你的问题不是很清楚,但如果你只想要sum()所有orders,那么你应该可以使用这样的东西:
select sum(TotalByOrder) TotalOrders
from
(
SELECT COUNT(*) TotalByOrder, jss_orders_headers.*
FROM jss_orders_headers
LEFT JOIN jss_orders_extrafields
ON jss_orders_headers.orderID = jss_orders_extrafields.orderID
AND jss_orders_extrafields.extraFieldID = 5
GROUP BY jss_orders_headers.orderID
) src
Run Code Online (Sandbox Code Playgroud)
请问WITH ROLLUP你需要什么?
SELECT COUNT(*), jss_orders_headers.* FROM jss_orders_headers
LEFT JOIN jss_orders_extrafields
ON jss_orders_headers.orderID = jss_orders_extrafields.orderID
AND jss_orders_extrafields.extraFieldID = 5
GROUP BY jss_orders_headers.orderID DESC WITH ROLLUP
Run Code Online (Sandbox Code Playgroud)
为什么没有ORDER BY?
使用ROLLUP时,也不能使用ORDER BY子句对结果进行排序。换句话说,ROLLUP和ORDER BY是互斥的。但是,您仍然可以控制排序顺序。MySQL中的GROUP BY对结果进行排序,您可以对在GROUP BY列表中命名的列使用显式的ASC和DESC关键字,以指定各个列的排序顺序。
| 归档时间: |
|
| 查看次数: |
33157 次 |
| 最近记录: |