SQL Server查询每天获取计数值

时间:2016-07-11 02:28:41

标签: sql sql-server

我需要计算给定时间段内每天的事件数量。这是我尝试过的,但它会计算给定时期内的总事件数。我需要计算每天的金额。这可以在一个查询中完成吗?例如: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' 

任何帮助都将不胜感激。

2 个答案:

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