首页 >数据库 >mysql教程 >一个用来统计相同姓名人数的SQl语句

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

WBOY
WBOY原创
2016-06-07 18:01:012694浏览

下面是语句是用来统计同名同姓人的个数。非常不错。需要的朋友可以参考下。

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

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn