记一次在开发统计过程中的sql编写

开发需要统计每个年级段的新生、老生、未在读的数据,有一个字段值能去0,1,2,3,6,值为1表示新生,为2老生,其余为不在读。这个时候我想把所有的数据一下读取完,之后用PHP循环处理,但是考虑到未来数据量会很大,所以一直在寻找在sql层面去编写效率更加高的语句。

之后通过请教,发现了case..when..then...end的写法,之前从来没有见过这个写法,原谅我的无知。之后写的如下

select count(stu_id) as total,

sum(case when newIdentity=1 then 1 else 0 end) as new,

sum(case when newIdentity = 3 then 1 else 0 end) as old,

sum(case when newIdentity<>1 && newIdentity <> 3 then 1 else 0 end) as weizhi

from student

where id>0

group by stu_grade;

通过这个sql编写,直接一次查询把所有数据统计好,这也算是我学到了一个新的用法,大大提高了开发效率。

谨记,一定要好好学习。

 

posted @ 2021-05-24 18:14  热爱交流的程序员  阅读(61)  评论(0)    收藏  举报