zoukankan      html  css  js  c++  java
  • 【转】成绩单、业绩表SQL(一个纵表变横表 一个用开窗函数)

    原文地址:http://blog.csdn.net/shenghuiping2001/article/details/4593914

    原始表: 

    name            course              score 
    ----------------------------------------- 
    张三            语文                80 
    张三            数学                75 
    张三            外语                60 
    李四            语文                90 
    李四            数学                85 
    李四            外语                70 
    王五            语文                95 
    王五            数学                80 
    王五            外语                75 


    结果表: 

    姓名        语文        数学        外语 
    ----------------------------------------- 
    张三        80          75          60 
    李四        90          85          70 
    王五        95          80          75 

    ========================================= 

    原始表: 

    city          volume 
    --------------------- 
    北京          16000 
    东莞          5000 
    上海          200000 
    广州          8500 
    湛江          100000 

    结果表: 

    城市          排名 
    --------------------- 
    北京          3 
    东莞          5 
    上海          1 
    广州          4 
    湛江          2

    SQL code 1:

    select name, sum(case when course = "语文" then score else 0 end) "语文", sum(case whencourse = "数学" then score else 0 end) "数学", sum(case when course = "外语" then scoreelse 0 end) "外语" from table1 group by name; select city, row_number() over(order byvolume desc) "排名" from table2;
    SQL code 2:
    SELECT name,SUM(DECODE(course,'语文',score,0)),SUM(DECODE(course,'数学',score,0)),SUM(DECODE(course,'外语',score,0)) FROM tb1 GROUP BY name; SELECT city "城市",rownum "排名" FROM tb2 ORDER BY volume DESC
    SQL code 3:
    select name,max(case when course='语文' then score end) "语文", max(case when course='数学' thenscore end) "数学", max(case when course='外语' then score end) "外语" from table_name group byname;
     
    select city "城市",row_number() over(order by volume descas "排名" from ww0924 order by rowid;
  • 相关阅读:
    centos安装--两张光盘
    ubuntu启动报错 Errors were found while checking the disk-drive for /
    gdb server调试步骤
    交叉编译VIM并移植到ARM嵌入式Linux系统
    交叉编译HTOP并移植到ARM嵌入式Linux系统
    为基于busybox根文件系统的ARM嵌入式Linux交叉编译dropbear使能SSH
    linux下对/sys/class/gpio中的gpio的控制 (转)
    [转]busybox登陆后没要求输入密码的解决办法
    [转]busybox中telnet 功能添加
    [转]Linux下阅读源代码:(g)vim+Taglist+ctags
  • 原文地址:https://www.cnblogs.com/mezero/p/2278403.html
Copyright © 2011-2022 走看看