当前位置: 首页 > 面试题库 >

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

公西国发
2023-03-14
问题内容

请考虑下表:

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


问题答案:
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


 类似资料:
  • 问题内容: 我在SQL Server输出中有一个查询, 假设我有一个具有某些字段的表(Ex.StudentMaster)-没有唯一约束。对于前 RollNumber和Name该表具有相同的数据。例如: 我只想获得第三条记录。如何识别此唯一记录? 问题答案: 任何一行都是第三行:-) 删除“第三”行:-) 删除最后一行:

  • 我有一个物品清单。每个对象都有一个级别属性(int 1、2或3)、一个城市属性(“New York”、“Milan”、“London”)和泛型字符串FamilyID。列表中对象的数量是随机的。我需要创建一个子列表(或任何其他集合/数据结构),它是由列表中的第一个对象组成的,具有级别和城市的任意组合(我不关心FamilyID)。 希望用一个例子让我的要求更清楚: 输出集合是具有(level,City

  • 有没有人知道我可以在我的DMN中的哪里使用上面的功能。我试着在我的决定的“表达”选项卡上写感觉。

  • 问题内容: 我有一个看起来像这样的列表列表: 删除重复列表的最佳方法是什么?使用上面的示例,我正在寻找会产生这种情况的代码: 我最初以为我可以使用,但这似乎不适用于列表列表。我还看到了一个使用的示例,但是代码对我来说并不完全清楚。谢谢您的帮助! 问题答案: uniq_animal_groups = set(map(tuple, animal_groups)) 尽管您将得到一组元组而不是一组列表,但

  • 问题内容: 我想创建一个(或一组)所有出现在python列表中的唯一值的列表。我有这样的事情: 我想要以下内容: 我知道对于字符串列表,您只能使用set(aList),但是我无法弄清楚如何在列表列表中解决此问题,因为set(aList)会向我显示错误消息 我该如何解决? 问题答案:

  • 我想获得跨多个数字id列的唯一数字id值列表。我的目标是帮助总结用户更改多个表时数据库中的更改流,在我的示例中,从表a到B,然后返回到a。 我知道我可以通过附加每个列的列表来实现这一点,但我想利用数据。表内部,以尽可能提高效率。 需要:矢量或数据。具有唯一值的表格,例如c(1,2,3,4)