【发布时间】:2014-08-19 20:46:35
【问题描述】:
我有一个包含几天数据的数据库,我想获取每天 Status=0、Status=1...Status=8 的每条记录的计数。我是来看看类似的。
DateAndTime State_0 State_1 State_2
2014-08-15 5 8 9
2014-08-16 2 5 6
2014-08-17 4 2 3
我正在尝试这个:
SELECT DISTINCT DATEADD(dd,(DATEDIFF(dd,0,DateAndTime)),0) AS DateAndTime,
SUM( Case When State=0 Then 1 Else 0 End) AS State_0,
SUM( Case When State=1 Then 1 Else 0 End) AS State_1,
SUM( Case When State=2 Then 1 Else 0 End) AS State_2
FROM [DB_002].[dbo].[MyDb]
Group By DateAndTime
Order by DateAndTime
但它不断为我添加的每个状态添加行。那就是 3 个州,每个日期我得到 4 行。任何有关如何执行此操作的建议将不胜感激。
【问题讨论】:
-
另外,您已经标记了这个 MySQL,但根据查询的语法,这是 Microsoft SQL Server。是哪个?
标签: mysql sql aggregate-functions