ITPub博客

首页 > 数据库 > Oracle > 使用Sign统计范围问题

使用Sign统计范围问题

原创 Oracle 作者:壹頁書 时间:2014-01-17 23:42:05 0 删除 编辑
有一个学生表,有id和分数两列。
低于60分为不及格
低于75分为及格
低于85分为良
高于85分为优

数据初始化。
  1. create table student
  2. (
  3.     student_id number,
  4.     grade number
  5. );
  6. insert into student select rownum,rownum+50 from dual connect by level<50;
  7. commit;

SQL> select * from student;

STUDENT_ID      GRADE
---------- ----------
         1         51
         2         52
         3         53
         4         54
         5         55
         6         56
         7         57
         8         58
         9         59
        10         60
        11         61
        12         62
        13         63
        14         64
        15         65
        16         66
        17         67
        18         68
        19         69
        20         70
        21         71
        22         72
        23         73
        24         74
        25         75
        26         76
        27         77
        28         78
        29         79
        30         80
        31         81
        32         82
        33         83
        34         84
        35         85
        36         86
        37         87
        38         88
        39         89
        40         90
        41         91
        42         92
        43         93
        44         94
        45         95
        46         96
        47         97
        48         98
        49         99

已选择49行
使用Sign函数统计一个班的学生,优、良、及格和不及格的人数。

  1. select student_level,count(*)
  2. from
  3. (
  4.     select grade,decode(student_level,'优',1,'良',2,'及格',3,4) sort,student_level
  5.     from
  6.     (
  7.         select grade,
  8.             case
  9.                 when sign(grade-60)=-1 then '不及格'
  10.                 when sign(grade-75)=-1 then '及格'
  11.                 when sign(grade-85)=-1 then '良'
  12.                 when sign(grade-100)=-1 then '优'
  13.             end student_level
  14.         from student
  15.     )
  16. )
  17. group by student_level,sort
  18. order by sort;

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29254281/viewspace-1072376/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-10-19

  • 博文量
    621
  • 访问量
    5956466