sql语句查询 表结构是这样: ID 姓名 性别 1 张三 男 2 王四 男 3 丽丽 女 4 张三 男 5 赵柳 男 6 高洁 男 7 王四 女 8 高洁 女 9 张三 女 怎么能用一条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