请考虑下表:
primaryKey id activity template creator created 1 1 3 5 x 2011-10-13 2 2 4 2 y 2011-10-15 3 2 4 7 z 2011-10-24 4 2 4 7 u 2011-10-29
在这里,我要找回它们是具有独特组合的记录id,activity和template。如果存在两个或多个这些字段的唯一组合,我想选择其中的第一个。
id
activity
template
作为上表数据的示例,我需要的输出是
primaryKey id activity template creator created 1 1 3 5 x 2011-10-13 2 2 4 2 y 2011-10-15 3 2 4 7 z 2011-10-24
(由于记录3和4具有相同的组合,我想只记录3,因为它是第一次出现)
我可以使用一条SQL语句执行此操作吗?
SELECT primarykey, id, activity, template, creator, created FROM ( SELECT *, row_number() OVER (partition BY id, activity, template ORDER BY created) as rn FROM table ) a WHERE rn = 1