我需要计算给定时间段内每天的事件数量。这是我尝试过的,但它会计算给定时期内的总事件数。我需要计算每天的金额。这可以在一个查询中完成吗?例如:2016-01-01-> 2,2016-01-02-> 1等。
SELECT count(ID)as events
FROM table
WHERE VehicleName='testvehicle'
AND DueDate IS NOT NULL
AND DueDate >= '2016-01-01'
AND DueDate <= '2016-12-31'
任何帮助都将不胜感激。
答案 0 :(得分:4)
我认为你只需要一个group by
:
SELECT DueDate, count(ID) as events
FROM table
WHERE VehicleName = 'testvehicle' AND
DueDate >= '2016-01-01' AND DueDate <= '2016-12-31'
GROUP BY DueDate;
注意:表达式DueDate IS NOT NULL
是多余的。如果DueDate
为NULL,则比较将失败。
答案 1 :(得分:1)
您必须使用group by
。
它是一个聚合函数,用于将结果集分组为一列或多列。
更多详情:http://www.tutorialspoint.com/sql/sql-group-by.htm
SELECT count(ID) as events
FROM table
WHERE VehicleName = 'testvehicle'
AND DueDate BETWEEN '2016-01-01' AND '2016-12-31'
GROUP BY DueDate;