我的表看起来像这样:如何为此编写sql查询?
id staus
1 p
1 p
1 c
2 p
2 c
我需要制作与'p'
和'c'
每个id
的状态行的计数,所以结果我预计应该是这样的:
id p c
1 2 1 <-- id 1 has two rows with 'p' and one row with 'c'
2 1 1 <-- id 2 has one row with 'p' and one row with 'c'
我怎样才能做到这一点?
我的表看起来像这样:如何为此编写sql查询?
id staus
1 p
1 p
1 c
2 p
2 c
我需要制作与'p'
和'c'
每个id
的状态行的计数,所以结果我预计应该是这样的:
id p c
1 2 1 <-- id 1 has two rows with 'p' and one row with 'c'
2 1 1 <-- id 2 has one row with 'p' and one row with 'c'
我怎样才能做到这一点?
看来你需要做你的表的支点,有一个简单的文章时,我遇到你同样的问题pivot table sql server
透视解决方案,我用。从SQL服务器2008年工作
declare @t table(id int, staus char(1))
insert @t values(1,'p'),(1,'p'),(1,'c'),(2,'p'),(2,'c')
SELECT id, [p], [c]
from @t
PIVOT
(count([staus])
FOR staus
in([p],[c])
)AS p
结果:
id p c
1 2 1
2 1 1
感谢您的支持 – balaji
它也有助于提供该表的定义。 – matthudson
['PIVOT'](http://technet.microsoft.com/en-us/library/ms177410(v = sql.105).aspx) –