一个用来统计相同姓名人数的SQl语句
时间:2021-07-01 10:21:17
帮助过:82人阅读
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
您可能感兴趣的文章:
- SQL 合并多行记录的相同字段值
- 简单有用的SQL脚本 (行列互转,查询一个表内相同纪录等)
- php中批量删除Mysql中相同前缀的数据表的代码
- sqlserver通用的删除服务器上的所有相同后缀的临时表
- sql函数实现去除字符串中的相同的字符串
- mysql中多表删除其中ID相同记录的方法
- 用SQL语句查询数据库中某一字段下相同值的记录方法
- 如何使用MySQL查询某个列中相同值的数量统计
- SQL中遇到多条相同内容只取一条的最简单实现方法