2011-09-20 175 views
0

我有一个数据表,它包含以下列:id(string),date(date),alert(0或1)。SQL:执行统计计算的查询

一些样本数据:

case001  2011-06-18 8:27:00  0 
case002  2011-06-18 16:30:00 1 
case003  2011-06-19 7:24:00  0 
... 
case150  2011-10-23 22:05:00 1 
case151  2011-10-24 11:45:00 1 
case152  2011-10-24 16:55:00 0 
case153  2011-10-24 20:13:00 0 
... 

我希望能够写一些SQL查询来计算每日警报的数量(其中1代表警告,0表示没有提示),也是数每个ID每天警报。

任何想法?

谢谢!!!

+0

哪个RDBMS您使用的使用?日期函数会因实现而有所不同。 –

+0

@Ed Harper:对不起,我忽略了这一点:我正在使用MySQL数据库。 – spookymodem

回答

0

这取决于您正在使用哪个数据库。

在Oracle中,你可以使用trunc函数来截断为每天(或每月等)

SELECT TRUNC(date, 'dd'), SUM(alert) 
FROM alerts 
GROUP BY TRUNC(date, 'dd') 

在MySQL中,你应该

GROUP BY DATE(date)