`
harrison2010
  • 浏览: 105759 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

一条SQL查询

SQL 
阅读更多
有一个表Studnet
包含字段name(主键),sex,age,class
现在求一条sql语句,并考虑执行效率
想要得到的输出是
class+男性age总和+女性age总和

也就是说要得到一个班级中男的年龄和和女的年龄和。。。


select class,sum(case when sex = '男性' then age else 0 end) as 男性age总和,
sum(case when sex = '女性' then age else 0 end) as 女性age总和
from studnet

select class,sum(case when sex = '男性' then age else 0 end) as 男性age总和,
sum(case when sex = '女性' then age else 0 end) as 女性age总和
from studnet
group by class


select class,
sum(case when sex='男' then age else 0 end) as '男性age总和',
sum(case when sex='女' then age else 0 end) as '女性age总和'
from student
group by class


1,2楼是2000里最高效的了,2005可以用pivot


SQL codeselect * from
    (select class,sex,age from Student) a
pivot
    (sum(age) for sex in (男,女)) b
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics