我可以使用row_number()
函数为组内的行分配数字:
SELECT
a.docn as agreement,
o.id as order_id,
(ROW_NUMBER() over (PARTITION BY a.id, o.id, ois.consumed_period )) as group_id
...
但是如何为组分配号码?
答案 0 :(得分:0)
似乎找到了答案。 doc:
表9.60中列出的所有功能取决于关联窗口定义的ORDER BY子句指定的排序顺序。 仅考虑ORDER BY列时没有区别的行被称为对等行。定义了四个排名函数(包括cume_dist),以便它们为所有对等行给出相同的答案。
select
a.docn as agreement,
o.id as order_id,
(dense_rank() over (PARTITION BY a.id, o.id ORDER BY ois.consumed_period )) as group_id,
在这里,我使用dense_rank
来Rank the current row within its partition
without gaps
,然后使用order by
来 create peers
。
因此dense_rank
为ois.consumed_period