mysql 分段统计数据

来源:互联网 发布:淘宝服装店学生 编辑:程序博客网 时间:2024/05/16 16:19

一、序言

       数据库用了很久了,期间也遇到过很多麻烦的SQL,以前一直没好好记录,自己也记不住,挺遗憾的,这次分享的是一个简单的分段统计的问题:student 表{id,name,score} 字段,统计各个分数段的人数。

      规则:60以下不及格,60-70差,70-80中,80-90良,90-100优。(好熟悉的感觉....)

    

 

二、代码:

       

Java代码  收藏代码
  1. SELECT  
  2.   sum(CASE when score<60 then 1 else 0 end)   AS '不及格',  
  3.   sum(CASE when score>=60 and score<70 then 1 else 0 end)   AS '差',  
  4.   sum(CASE when score>=70 and score<80 then 1 else 0 end)   AS '中',  
  5.   sum(CASE when score>=80 and score<90 then 1 else 0 end)   AS '良',  
  6.   sum(CASE when score>=90 and score<=100 then 1 else 0 end)   AS '优'  
  7. from student;  

 

 

三、小结:

      1.其实学SQL的时候就写过这些,只是有时候突然别人让你写,有呆了- -

      2.题目比较简单,还有其他比如 分组统计 、 平均值 、行转列等类似的,挺多的,抽时间多整理下吧

      3.有不对的地方请指出,更好的方案可以提出,比如一些函数可以直接统计的,当然考虑效率。

      4.希望朋友遇到比较有特色的SQL 能自己记录并分享出来,我这里以后也会持续记录了,SQL这些除了掌握基本的优化手段以外,很多还是要靠经验积累,平时遇到麻烦的SQL比较少,那么很难得到提升,如果大家都分享出来,然后动手去做,优化,那么相信大家能进步得更快,分享快乐~.~

0 0
原创粉丝点击