zoukankan      html  css  js  c++  java
  • Oracle通过左联实现伪分区排序查询

    给两个表,tSub课程表,tSC学生成绩表,然后去将二者字段联合查询出来,并按照总成绩进行排序

    如果使用分区查询,rank这种,无法聚合查询总成绩

    左联子查询,在子查询中使用 order by 对总成绩进行排序

    select A.sid, A.sname, A.subid, D.subname, A.score from sys.tSC A left join 
    (select B.sid,sum(B.score) ss from sys.tSC B group by B.sid) C on A.sid=C.sid left join 
    sys.tSub D on A.subid=D.subid order by C.ss desc,A.score desc

    第一行,查询所需字段

    第二行,左联总成绩的聚合排序查询

    第三行,左联课程表

    最终结果

    之前没接触过Oracle,第一次使用,与mysql有比较大的差别,慢慢熟悉

    • inner join(等值连接) 只返回两个表中联结字段相等的行
    • left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
    • right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
    论读书
    睁开眼,书在面前
    闭上眼,书在心里
  • 相关阅读:
    codevs 1766 装果子
    codevs 1415 比那名居天子
    codevs 1388 砍树
    codevs 1373 射命丸文
    codevs 2867 天平系统3
    codevs 2866 天平系统2
    codevs 2865 天平系统1
    codevs 2832 6个朋友
    广搜优化题目总结
    Codeforces Round #578 (Div. 2)
  • 原文地址:https://www.cnblogs.com/YC-L/p/14601003.html
Copyright © 2011-2022 走看看