每次两个 fields/columns 完全匹配时分配唯一 ID

Assign unique id each time two fields/columns are an exact match

大查询:

如果某人和日期完全匹配,我希望分配 'unique combination id'。因此对于每个特定时间 'person_id' 和特定日期时间是相同的,它们总体上分配了一个数字(时间将始终是 00:00:00 但只需要在那里记录)。这将是一个整体的唯一数字,而不是针对每个人的计数。希望这是有道理的。

下面是您想要的结果。所以你会看到第 1 行和第 5 行是相同的唯一组合,所以具有相同的 unique_combination_id.

person_id Datetime unique combination_id
1234 2016-04-01T00:00:00 1
1234 2016-05-04T00:00:00 2
9102 2018-05-17T00:00:00 3
5678 2019-09-01T00:00:00 4
1234 2016-04-01T00:00:00 1

使用 DENSE_RANK() 应该可以解决问题:

SELECT *, 
   DENSE_RANK() OVER(ORDER by person_id, datetime) as unique_combination_id
FROM tbl;

DEMO