我正在尝试在不使用WHERE
子句的情况下用PHP SQL计算列。但问题是,我无法对GROUP的一列进行求和。我正试图通过展示下面的图片来详细说明这个问题-
table name = production_tb
ID | qtycount | sku | step_count | transaction
---------------------------------------------------
1 | 5 | 123 | 1 | 123456
2 | 5 | 123 | 1 | 123456
3 | 5 | 123 | 1 | 123456
4 | 8 | 123 | 2 | 123457
5 | 7 | 123 | 2 | 123457
6 | 3 | 123 | 3 | 123458
我尝试了这个代码SELECT *, SUM(qtycount) FROM production_tb GROUP BY transaction
,得到了3行,我想计算三行合一,并希望输出为33
我也使用DISTINCT
函数,但它在重复/重复数字中不起作用。
我如何做到这一点,我将在联接表中使用这个函数,但我不知道做这件事的基本原理,所以我为什么要把它作为一个单表方法来问它。请帮帮我。
你能给出你想要的输出行吗?因为,如果你只想要一行,你可以只做SELECT SUM(qtycount) FROM production_tb
。否则,如果你想要每组的总数,你可以做一个子选择,比如:
SELECT
t1.*,
SUM(t1.qtycount),
(SELECT SUM(t2.qtycount) FROM production_tb as t2) AS total
FROM
production_tb as t1
GROUP BY
t1.transaction
但是子选择会降低查询速度,结果集很大!