Select sum(case when age >= 18 and age < 25 then 1 else 0 end) as 18-25,
sum(case when age >= 25 and age < 30 then 1 else 0 end) as 25-30,
sum(case when age >= 30 and age < 40 then 1 else 0 end) as 30-40,
sum(case when age >= 40 and age < 50 then 1 else 0 end) as 40-50,
sum(case when age >= 50 then 1 else 0 end) as 50
from 表
sum(case when age >= 25 and age < 30 then 1 else 0 end) as 25-30,
sum(case when age >= 30 and age < 40 then 1 else 0 end) as 30-40,
sum(case when age >= 40 and age < 50 then 1 else 0 end) as 40-50,
sum(case when age >= 50 then 1 else 0 end) as 50
from 表
解决方案 »
- foreign key的问题
- 如何在VC下做SQLSERVER 2000的SQL嵌入式编程
- 在存储过程中raiserror引发错误内整个过程回滚吗?
- 如何这样有条件地筛选数据?
- 关于模糊查询
- SQLServer中数据库中的用户与数据库security下login中的用户的联系和区别
- 这个触发器插入到动态表中,为什么总是不对?
- 会签或者并发审批的自定义审批流应该如何设计数据库?
- 存储过程无法调试,高分送!
- 如果可以,我愿另开贴给出500分(SQL高手,你说这种类型业务需求,可以使用SQL复制功能完成吗?)
- 怎样讲jpg或gif等图像文件存入数据库image里?!用sql queary器
- 查询速度(2)
from 表
group by case when 年龄<25 then -1 when 年龄>49 then 0 else
floor(年龄/5) end
SUM(CASE WHEN age BETWEEN 26 AND 30 THEN 1 ELSE 0 END) AS 26-30的人数,
SUM(CASE WHEN age BETWEEN 31 AND 40 THEN 1 ELSE 0 END) AS 31-40的人数,
SUM(CASE WHEN age BETWEEN 41 AND 50 THEN 1 ELSE 0 END) AS 41-50的人数,
SUM(CASE WHEN age>50 THEN 1 ELSE 0 END) AS 50以上的人数
FROM student
select count(age) from 表
group bycase when age<=25 then -1
when age>25 and age<=30 then -2
when age>30 and age<=40 then -3
when age>40 and age<=50 then -4
when age>50 then -5
end
SUM(CASE WHEN age BETWEEN 26 AND 30 THEN 1 ELSE 0 END) AS '26-30的人数',
SUM(CASE WHEN age BETWEEN 31 AND 40 THEN 1 ELSE 0 END) AS '31-40的人数',
SUM(CASE WHEN age BETWEEN 41 AND 50 THEN 1 ELSE 0 END) AS '41-50的人数',
SUM(CASE WHEN age>50 THEN 1 ELSE 0 END) AS '50以上的人数'
FROM student