如想统计一栋楼里边各学历的分布情况,即各学历有多少人,degree是学历。下图为数据库:
①普通的写法是
select degree, count(degree) dnum
from t_resident
where build_id=1 group by degree;
结果为:
②但若要求得到学历的详细信息,上图就显得不那么直观。可以使用case when then end写法来转化数据库中的信息。
select (
case
when degree=1 then '高中以下'
when degree=2 then '高中'
when degree=3 then '大专'
when degree=4 then '本科'
when degree=5 then '硕士'
when degree=6 then '博士'
else '博士以上'
end
)lable,degree, count(degree) dnum
from t_resident
where build_id=1 group by degree;
结果为:
这样效果会更好些。