我希望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
表格结构
的orderID, 等
EXID, 单编号, extrafieldID, extrafieldName, 含量
目前返回的数据如下:
1 | 99
1 | 104
1 | 106
我需要返回SUM
列的COUNT()
。因此,在上面的3个示例中,我将返回3
。
非常感谢
答案 0 :(得分:15)
您的问题不是很清楚,但如果您只想要所有sum()
的{{1}},那么您应该可以使用以下内容:
orders
答案 1 :(得分:4)
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
为什么没有ORDER BY
?
使用ROLLUP时,也不能使用ORDER BY子句进行排序 结果。换句话说,ROLLUP和ORDER BY是相互的 独家。 但是,您仍然可以控制排序顺序。组 MySQL中的BY对结果进行排序,您可以使用显式ASC和DESC 在GROUP BY列表中命名的列的关键字,用于指定排序顺序 对于单个列。