您现在的位置:主页 > 数据库 > MS_SQL >

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

来源:建站吧 责任编辑:Jzq8 发表时间:2011-12-08 点击:

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 Server 2005 安全设置教程
    • SQL Server2000连接中的常见错误
    • 剖析SQLServer查询通知之基础篇
    • SQLServer数据加密技术应用研究
    • SQL教程:SQLServer备份和灾难恢复
    • 使用publishing转移MSSQL数据
    • SQL集合函数中利用casewhenthen技巧
    • SQLServer数据挖掘中的几个问题之理解内容类型
    • 数据库置疑?几步搞定SQL数据库修复
    Alexa - 客户服务 - 联系方法 - 招聘信息 - 友情链接 - 网站地图 - TAG标签 - RSS订阅
    Copyright © 2010-2012 JZQ8.COM. 建站吧|建站去吧 版权所有
    冀ICP备09002514号
    冀ICP备09002514号 网络报警 企业法人营业执照 中国互联网协会 支付宝付款 网银在线付款