我有一个名为People的表格,格式如下:
Date | Name
。
当我通过名称分组
计算人数时Select Date, Name, count(*)
From People
Group By Date, Name;
将提供以下内容
Date Name count(*)
10 Peter 25
10 John 30
10 Mark 25
11 Peter 15
11 John 10
11 Mark 5
但我希望得到以下结果:
Date Peter John Mark
10 25 30 25
11 15 10 5
这可能吗?这是一个更复杂的数据库的简单示例。如果有人帮助我解决这个问题,我将使用这个概念在我的表中实现它
谢谢!
答案 0 :(得分:3)
Select Date
, count(case when Name = 'Peter' then 1 else null end)
, count(case when Name = 'John' then 1 else null end)
, count(case when Name = 'Mark' then 1 else null end)
From People
Group By Date;
答案 1 :(得分:1)
另一个与turbanoff不同的选项,如果出于某种原因,你发现自己处于一种无法通过以下方式应用群组的情况:
Select distinct(P.Date),
(select count(*) from People where date=p.date and name='Peter') as Peter,
(select count(*) from People where date=p.date and name='John') as John,
(select count(*) from People where date=p.date and name='Mark') as Mark
From People P