我想从包含日期和数据的表中计算数据..表中有很多数据。示例如下:
DATE hour data1 data2
-------------------------------
01/01/2010 1 10860 1234
01/01/2010 2 10861 1234
01/01/2010 3 10862 1234
01/01/2010 4 10863 567
01/01/2010 5 10864 458
02/01/2010 1 10865 3467
02/01/2010 2 10866 7890
02/01/2010 3 10867 863
02/01/2010 4 10868 0
02/01/2010 5 10868 698
03/01/2010 1 10868 4693
03/01/2010 2 10868 7853
03/01/2010 3 10868 5987
并从上面的数据。我想把它计算成这样的表:
DATE sdata1 sdata2
-------------------------------
01/01/2010 54310 4727
02/01/2010 54334 12918
03/01/2010 32604 18533
sdata1和sdata2是计算数据的总和......有没有办法让我将数据计算到上面的数据显示中?谢谢......呵呵......
答案 0 :(得分:3)
SELECT DATE, SUM(data1) AS sdata1, SUM(data2) AS sdata2 FROM table1 GROUP BY DATE;
试试这个并告诉我这是否是您正在寻找的。如果需要范围,也可以使用WHERE DATE BETWEEN startDate和endDate。
另一个技巧,如果你想让另一个表中的数据做" stuff"与,将是:
CREATE TABLE table2 (SELECT DATE, SUM(data1) AS sdata1, SUM(data2) AS sdata2 FROM table1 GROUP BY DATE);
这将执行上面的查询,但会创建一个包含结果的新表。我不确定您为什么可能需要这样做,但有时会取消规范化并在表格中显示计算信息以加快您的应用。
如果您已有桌子,则可以执行以下操作:
INSERT INTO table2 (DATE, sdata1, sdata2) VALUES (SELECT DATE, SUM(data1) AS sdata1, SUM(data2) AS sdata2 FROM table1 GROUP BY DATE);