SQL:执行统计计算的查询
问题描述:
我有一个数据表,它包含以下列: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每天警报。
任何想法?
谢谢!!!
答
这取决于您正在使用哪个数据库。
在Oracle中,你可以使用trunc
函数来截断为每天(或每月等)
SELECT TRUNC(date, 'dd'), SUM(alert)
FROM alerts
GROUP BY TRUNC(date, 'dd')
在MySQL中,你应该
GROUP BY DATE(date)
哪个RDBMS您使用的使用?日期函数会因实现而有所不同。 –
@Ed Harper:对不起,我忽略了这一点:我正在使用MySQL数据库。 – spookymodem