我希望在我的数据中查找/分配组的连续编号.

如所需输出画面中的<Group Number>列.我只需要添加2个新的列.Group Number是每个ID的每个GroupID的数字.try 了所有的Rank/Row_Numb/Dense无法计算出,我也需要< Rank by ID,GroupID>,但已经用到row_number了.

我需要做任何运行值吗?我使用的是SQL Server 2019.

示例代码如下:

/*
SELECT * INTO #t FROM (    --- sample data load   select * from #t            ----   drop table #t
SELECT '1234' ID, 'American 1' Risk_Name,  1 line, 10 GroupID   UNION
SELECT '1234', 'Asian 21', 2, 20  UNION SELECT '1234', 'Asian 24', 3, 20 UNION SELECT '1234', 'Asian 28', 4, 20  union
SELECT '1234', 'Europe 300', 5,30  UNION SELECT '1234', 'Europe 388', 6,  30   union
SELECT '88888', 'American 2', 1, 10 UNION SELECT '88888', 'American 4', 2, 10   UNION SELECT '88888', 'Europe 33', 3,30 )a
*/

SELECT
    *,
    ROW_NUMBER() OVER (PARTITION BY ID, GROUPID ORDER BY line) RankByID_GroupID
    -- ,DENSE_RANK() OVER (PARTITION BY  GROUPID, ID  ORDER BY line) GroupNumber--????
FROM 
    #t

ID      Risk_Name   line    GroupID
------------------------------------
1234    American 1  1       10
1234    Asian 21    2       20
1234    Asian 24    3       20
1234    Asian 28    4       20
1234    Europe 300  5       30
1234    Europe 388  6       30
88888   American 2  1       10
88888   American 4  2       10
88888   Europe 33   3       30

这是所需的输出:

enter image description here

推荐答案

使用PARTITION BY ID ORDER BY GROUPID.

SELECT *,
    ROW_NUMBER() OVER (PARTITION BY ID, GROUPID ORDER BY line) AS RankByID_GroupID,
    DENSE_RANK() OVER (PARTITION BY ID ORDER BY GROUPID) AS GroupNumber
FROM #t;

Sql相关问答推荐

在SQL:2003(PGQ)中,Cypher查询语言、GQL、PGQL和属性图查询的常见子集是什么?'

SQL查询以条件空值跟踪生产操作结果进展

SQL Google Sheets:UNIQUE/DISTINCT和编码查询函数

使用WHERE子句进行筛选时,SQL SELECT查询返回总计数

如何利用单列历史SQLsnowflake获得合并结果

了解放置时的连接

过go 四周未填充的数据,即W50,51,52-SQL

直接加法(1+1)与聚合函数SUM(1+1)的区别是什么

从包含PostgreSQL中的JSON值的列中提取列表或目录

在Postgres中合并相似的表

使用generate_series()时,LEFT联接缺少日期/间隔

多条件SQL排序行为

SQL查询正在工作,但返回空结果

需要使用SQLite查询进行一些奇怪的时间转换

如何从postgresql中的项目映射(关联数组)设置值?

SQL ORACLE - 查找连续天数

每次计数器增加时通过运行总重置进行分组

如何在 JSONB 数组的每个对象中添加新的键值对- PostgreSQL

SQL Server 查找存在于所有不同时期(或序列)中的条目

在 PostgreSQL 中,如何将数组中的每个元素用作另一个表中的键?