读书人

!这条SQL语句怎么写?高分送

发布时间: 2012-04-08 14:38:30 作者: rapoo

求救!这条SQL语句如何写???高分送!在线等
档案表(编号,性别,政治面貌,年龄)
    1  男  党员   25
    2  女  团员   20
    3  男  党员   40
    4  男  群众   35
    5  女  党员   28

要求按这个政治面貌分组统计
       政治面貌 男 女 总人数 平均年龄

请问各位一条SQL语句能实现吗?

[解决办法]
SQL Server 的:

SELECT 政治面貌,
COUNT(CASE WHEN 性别=男 THEN 1 END) 男,
COUNT(CASE WHEN 性别=女 THEN 1 END) 女,
COUNT(编号) 总人数,
AVG(年龄) 平均年龄
FROM 档案表

//如果是Access用SELECT嵌套一下
[解决办法]
SELECT a.what as 政治面貌,count(*) as 总人数,(select count(*) from info b where sex= '男 ' and b.what=a.what) as 男,(select count(*) from info b where sex= '女 ' and b.what=a.what) as 女,avg(a.old) as 平均年龄
FROM info a group by What;
[解决办法]
SELECT 政治面貌,
性别,
COUNT(编号) 总人数,
AVG(年龄) 平均年龄
FROM 档案表
GROUP BY 政治面貌,性别
[解决办法]
SELECT 政治面貌,
COUNT(CASE WHEN 性别= '男 ' THEN 1 END) 男,
COUNT(CASE WHEN 性别= '女 ' THEN 1 END) 女,
COUNT(编号) 总人数,
AVG(年龄) 平均年龄
FROM 档案表 group by 政治面貌
[解决办法]
SELECT 政治面貌,
SUM(CASE WHEN 性别= '男 ' THEN 1 ELSE 0 END) 男,
SUM(CASE WHEN 性别= '女 ' THEN 1 ELSE 0 END) 女,
COUNT(编号) 总人数,
AVG(年龄) 平均年龄
FROM 档案表 group by 政治面貌

读书人网 >.NET

热点推荐