【问题标题】:Retrieve the first occurrence of a record by ID in SQL在 SQL 中按 ID 检索第一次出现的记录
【发布时间】:2020-04-12 14:26:49
【问题描述】:

我正在尝试将一些数据从 SQL 服务器导入 Excel,但遇到了一些问题。这是我第一次编写查询,虽然我能够获取整个数据集,但我意识到数据中充满了重复。我想摆脱 Excel 中的重复项,只保留唯一记录。我不能在 Excel 中使用“删除重复项”,因为数据设置为每 30 分钟刷新一次,我不想经常删除它们。

我的数据设置为:

ID-Code-Status-Status

1-  A-  In-   Employee
2-  A-  In-   Employee
3-  B-  Out-   Temp
4-  A-  Out-   Employee
5-  A-  Out-   Employee

必填

ID-Code-Status

1-  A-  In-   Employee
3-  B-  Out-   Temp
4-  A-  Out-   Employee

我尝试过使用 distinct,但它让我更加困惑。

非常感谢。

【问题讨论】:

  • 我想你想用DISTINCT ON
  • 这里的菜鸟,怎么用?
  • 对不起,我误读了你的帖子。我错过了您使用 SQL Server。请用您使用的数据库类型标记您的帖子(下次)。跟着蒂姆的回答走。

标签: sql group-by distinct


【解决方案1】:

您可以使用子查询来选择每个代码和状态的第一次出现(例如A, In):

SELECT * FROM [TableName] where [ID] IN
  (SELECT MIN([ID]) FROM [TableName] GROUP BY [Code], [Status])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-20
    • 1970-01-01
    • 2018-12-31
    • 1970-01-01
    • 2020-12-01
    • 1970-01-01
    • 2021-10-31
    • 2012-03-23
    相关资源
    最近更新 更多