一个用来统计相同姓名人数的SQl语句

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

), ‘<N ID=”‘, ‘,’), ‘”/>’, ”), 1, 1, ”)

)N

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐