mysql 分段统计数据

一、序言

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

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

    

二、代码:

       

SELECT
  sum(CASE when score<60 then 1 else 0 end)   AS '不及格',
  sum(CASE when score>=60 and score<70 then 1 else 0 end)   AS '差',
  sum(CASE when score>=70 and score<80 then 1 else 0 end)   AS '中',
  sum(CASE when score>=80 and score<90 then 1 else 0 end)   AS '良',
  sum(CASE when score>=90 and score<=100 then 1 else 0 end)   AS '优'
from student;

三、小结:

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

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

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

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

猜你喜欢

转载自greemranqq.iteye.com/blog/2080396