我目前有以下内容:
SELECT status,count(status) AS count
FROM [DB].[dbo].[contact]
GROUP BY status
这给了我以下内容:
Status 1 | 12
Status 2 | 23
Status 3 | 63
我试图让表格看起来像这样:
Status 1 Status 2 Status 3
12 23 63
最终表格如下:
Status 1 Status 2 Status 3
Date Range 1 12 23 63
Date Range 2 23 2 3
我只是不确定现在该做什么。我应该学习什么样的SQL命令/语法才能完成这项工作?这是我第一次看SQL,所以任何指针都会很棒。
答案 0 :(得分:1)
您可以使用这样的查询来获取正确格式的数据:
SELECT
sum(case when status = 'Status 1' then 1 else 0 end) Status1,
sum(case when status = 'Status 2' then 1 else 0 end) Status2,
sum(case when status = 'Status 3' then 1 else 0 end) Status3
FROM [DB].[dbo].[contact]
在SQL Server中,您甚至可以使用PIVOT
函数转换数据:
select [Status 1] as Status1,
[Status 2] as Status2,
[Status 3] as Status3
from
(
SELECT status, status as statusToCount
FROM [DB].[dbo].[contact]
) src
pivot
(
count(statusToCount)
for status in ([Status 1], [Status 2], [Status 3])
) piv