zoukankan      html  css  js  c++  java
  • oracle数据分组排名次

    最近项目中遇到一个分组排名次的问题如下:

    数据库里有如下一张表:
    depart  A      B          C        Group

    一支队    1      34.4      3.3        1
    二支队    1      33.3      32.2        1
    三支队    2      3.3      22.2        1
    四支队    3.3    4.4      33.3        1
    高新区    2.2    3.3      22.2        2
    经开区    3.3    23        33.3        2
    曲江区    4.5    35        23.9        2
    未央区    12.2    39        3.3        2
    长安区    30.3    23        2.2        2

    我想用语句实现如下功能,用语句返回来的是如下一张表
    depart  A      B          C        Group    总分    名次

    二支队    1      33.3      32.2        1      66.5    1
    四支队    3.3    4.4      33.3        1      41      2
    一支队    1      34.4      3.3        1      38.7    3
    三支队    2      3.3      22.2        1      27.5    4
    曲江区    4.5    35        23.9        2      63.4    1
    经开区    3.3    23        33.3        2      59.6    2
    长安区    30.3    23        2.2        2      55.5    3
    未央区    12.2    39        3.3        2      54.4    4
    高新区    2.2    3.3      22.2        2      27.7    5




    解决办法:
    select *
    from
    (select a.*,nvl(a.b,0)+nvl(a.c,0) 总分
    ,row_number() over(partition by group order by nvl(a.b,0)+nvl(a.c,0)) 名次
    from tb a
    )
    order by group,名次
  • 相关阅读:
    webstorm实现手机预览页面
    git 远端版本回退
    Vue开发中的移动端适配(px转换成vw)
    测试web-view,实现小程序和网页之间的切换
    mysql 字符集研究
    Openssl
    Android Activity 去掉标题栏及全屏显示
    Android中的 style 和 theme
    Android sharedPreferences 用法
    Vim 字符集问题
  • 原文地址:https://www.cnblogs.com/cxy521/p/1404747.html
Copyright © 2011-2022 走看看