一个用来统计相同姓名人数的SQl语句
2010-07-19 00:00
1376 查看
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
表结构是这样:
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
![](https://oscdn.geek-share.com/Uploads/Images/Content/2015/2015030173/c665d1d32d840cb282024aead2bc6925.gif)
相关文章推荐
- 【ORACLE】一个简单实用的对数据进行行列转换并统计的SQL语句
- 一个SQL语句实现的统计功能
- 统计一个数据库中,无记录的表的sql语句
- 一个sql语句的编写 写出不及格门数大于等于2的学生的姓名和平均成绩
- 用sql语句创建一个与表A字段相同的表B
- SQL语句 按年龄段分组统计人数
- 关于统计的一个sql问题,使用动态sql语句实现。
- SQL:如何用一个sql统计出全校男生个数、女生个数以及总人数
- 一个 Sql语句优化的问题- STATISTICS 统计信息
- 是否可以用sql语句实现分数的分段人数统计解决方法
- 统计一个数据库中表个数的sql查询语句
- 只有两个字段用一个sql语句查询出某个学生的姓名、成绩以及在表中的排名
- 一条sql统计一个班级的男女人数
- sql 语句 编写一个函数用来精确计算某个人的当前年龄(精确到一位小数),比如:20.3岁
- 一个表的两个字段具有相同的类型。如何仅用SQL语句交换这两列的数据?
- SQL 一条SQL语句 统计 各班总人数、男女各总人数 、该班级男女 比例
- SQL 一条SQL语句 统计 各班总人数,男女各总人数 ,各自 男女 比例
- SQL中if语句统计班级党员人数
- 用一条sql统计所一个班级的男女人数