2016-09-20 97 views
-1

我有一个列请求列表RequestType,状态.Status列值可以进行中,编译等。 我想获得像如何根据sql server中一列的值进行分组并获得行数

RequestType In-Progress Completed Total 
Type1   10   5   15 
Type2   10   10   20 

列表我集团通过使用2列(请求类型,状态),但它并没有给我确切的结果。

请帮我使用sql查询。

在此先感谢 李苏滨

+0

价值观'Status'栏是固定的或新的状态能在将来添加 –

+0

也会在此处显示您的状态列 –

+0

只显示与您的结果不匹配的结果ctations。 – rbr94

回答

1

一种方式做到这一点是使用条件aggrigation:

SELECT RequestType, 
     SUM(CASE WHEN Status = 'In-Progress' THEN 1 ELSE 0 END) As 'In-Progress', 
     SUM(CASE WHEN Status = 'Completed' THEN 1 ELSE 0 END) As 'Completed', 
     COUNT(Status) As 'Total' 
FROM TableName 
WHERE Status IN('In-Progress', 'Completed') 
GROUP BY RequestType 
1

使用PIVOT

select *, [In-Progress]+[Completed] total 
from TableName 
pivot (count(status) for status in ([In-Progress], [Completed])) as p 
相关问题