更快速地汇总SQL列的各个部分

时间:2016-09-15 14:00:28

标签: php sql

假设我有一张100万行的表格。一列列出“组”,另一列列出“销售”。 Group#的范围从1到100,000,因此每个Group有大约10个Sales条目。我想以某种方式将数据汇总到100,000行,每个组的销售额总和而不是每个单独销售。

到目前为止,我的方法是运行从1到100,000的PHP循环,其中每次迭代都将一个SQL查询发送到sum(Sales)WHERE Group = $ i。然后我可以将它回显到html表中,或者将其插入到新的SQL表中。问题是这种方法需要几个小时。

有关如何改进此流程的任何提示?有没有办法将其编写为单个SQL查询,以大幅提高速度?感谢

2 个答案:

答案 0 :(得分:4)

试试GROUP BY:

SELECT `group`, sum(sales)
FROM your_table
GROUP BY `group`

修改以包含group的后退标记。没有它们,您将收到错误

答案 1 :(得分:0)

除非没有其他解决方案,否则应始终避免循环中的SQL查询。在这种情况下,您可以一次获取所有字段并将它们放在一个数组中,然后以这种方式将它们添加到PHP中。