sql语句查询
表结构是这样:
id 姓名 性别
1 张三 男
2 王四 男
3 丽丽 女
4 张三 男
5 赵柳 男
6 高洁 男
7 王四 女
8 高洁 女
9 张三 女
怎么能用一条sql语句查询出如下的结果
姓名 人员个数 男人数 女人数 包含id
张三 3 2 1 1,4,9
王四 2 1 1 2,7
丽丽 1 0 1 3
高洁 2 1 1 6,8
赵柳 1 1 0 5
代码如下:
select * from (select distinct name,count(id) as 人員個數,
sum(case when sex='男' then 1 else 0 end) as 男人數,
sum(case when sex='女' then 1 else 0 end) as 女人數
from test group by name) a
outer apply(
select
[包含id]= stuff(replace(replace(
(
select id from test n
where name = a.name
for xml auto
), '', ''), 1, 1, '')
)n