SQL/HANA 查询在不使用存储过程的情况下为每个 X 唯一值分配增量数

SQL/HANA query assigning incremental number per X unique values without using stored procedure

目前我正在努力编写一个 select 查询来实现以下结果:

我有文件,每个文件都有一个地址。 现在我想要第三列,它将为在结果列表中找到的每 X 个唯一地址分配一个唯一编号。在示例中,我使用了 X = 3.

共有 7 个唯一地址。这意味着我们需要 3 个唯一的数字。 1 = (地址 A,B,C) , 2 = (地址 D,E,F), 3= (地址 G).

PS。我已经在存储过程中制定了这个逻辑,但由于技术限制,我无法详细说明这一点,如果可能的话,必须使用 SELECT 查询来完成。如果这不可能,我们将不得不寻找其他解决方法。

我希望你能给我指明正确的方向,使用 HANA SQL 语法来实现这一点。我一直在研究 ROW_NUMBER 和 DENSE_RANK 但是没有成功。

为了使您的问题有意义,您需要一个排序列。此答案假定 document 对行进行排序。

你想根据每个地址的最小值document分配分组(然后算术)。您可以使用两级 window 函数来实现:

select t.*,
       ceil(dense_rank() over (order by min_document) / 3.0) as incremental_number
from (select t.*,
             min(document) over (partition by address) as min_document
      from t
     ) t;