小编典典

如何基于表中的多个列获取唯一记录

sql

请考虑下表:

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

在这里,我要找回它们是具有独特组合的记录idactivitytemplate。如果存在两个或多个这些字段的唯一组合,我想选择其中的第一个。

作为上表数据的示例,我需要的输出是

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语句执行此操作吗?


阅读 267

收藏
2021-03-23

共1个答案

小编典典

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

2021-03-23