首页 > 解决方案 > PHP计算没有WHERE子句的列

问题描述

我正在尝试在没有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函数,但它不适用于重复/重复数字。

我如何做到这一点,我将在连接表中使用此功能,但我不知道执行此操作的基础知识,所以为什么我将其作为单表方法提出。请帮我。

标签: phpmysqlpdosumcalculated-columns

解决方案


你能给出你期望的输出行吗?因为,如果你只想要一排,你可以做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

但是子选择会减慢具有大结果集的查询!


推荐阅读