根据月份计算并汇总表中的数据

时间:2012-07-23 06:48:51

标签: sql select

我想从包含日期和数据的表中计算数据..表中有很多数据。示例如下:

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是计算数据的总和......有没有办法让我将数据计算到上面的数据显示中?谢谢......呵呵......

1 个答案:

答案 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);