加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – select(Oracle)中的组编号

发布时间:2020-12-12 06:32:19 所属栏目:MsSql教程 来源:网络整理
导读:我有一个以下示例 – 包含姓名,部门和国家/地区的表格.我需要创建一个select语句,列出所有记录,并为每个部门和国家/地区分配唯一编号(示例中的列组): Name Department Country Group====== ============ ========= =====James HR UK 1John HR UK 1Alice Fina
我有一个以下示例 – 包含姓名,部门和国家/地区的表格.我需要创建一个select语句,列出所有记录,并为每个部门和国家/地区分配唯一编号(示例中的列组):
Name   Department   Country   Group
====== ============ ========= =====
James  HR           UK        1
John   HR           UK        1
Alice  Finance      UK        2
Bob    Finance      DE        3
Frank  Finance      DE        3

我想到了一些具有分析功能的select,但我发现只有row_number()over(按部门划分,国家/地区),它在组内编号记录而不是组本身.你知道如何解决这个问题吗?谢谢!

解决方法

SELECT  t.*,q.grp
FROM    (
        SELECT  q.*,rownum AS grp
        FROM    (
                SELECT  DISTINCT department,country
                FROM    mytable
                ORDER BY
                        department,country
                ) q
        ) q
JOIN    mytable t
ON      t.department = q.department
        AND t.country = q.country

要么

SELECT  t.*,DENSE_RANK() OVER (ORDER BY department desc,country desc) AS grp
FROM    mytable

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读