一、序言
数据库用了很久了,期间也遇到过很多麻烦的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比较少,那么很难得到提升,如果大家都分享出来,然后动手去做,优化,那么相信大家能进步得更快,分享快乐~.~