检查GROUP BY中的条件?

问题描述 投票:0回答:1

以此示例数据:

ID    Status    Date
1     Pending   2/10/2020
2     Pending   2/10/2020
3     Pending   2/10/2020
2     Pending   2/10/2020
2     Pending   2/10/2020
1     Complete  2/15/2020

我需要一个SQL语句,该语句将对所有数据进行分组,但会返回当前状态。因此,对于ID 1,group by需要一个条件,该条件仅返回Completed行,并且还返回ID 2和3的待处理行。

我不是100%如何为此写信。

也许像:

SELECT ID, Status, Date
FROM table
GROUP BY ID, Status, Date
ORDER BY ID

问题是生成的数据看起来像:

ID    Status    Date
1     Pending   2/10/2020
1     Complete  2/15/2020
2     Pending   2/10/2020
3     Pending   2/10/2020

但是我需要:

ID    Status    Date
1     Complete  2/15/2020
2     Pending   2/10/2020
3     Pending   2/10/2020

我该怎么做才能检查完成状态,因此我只能在分组依据中返回已完成?

sql sql-server tsql group-by case
1个回答
2
投票

仅执行GROUP BY ID列。使用MIN()选择“待定之前完成”。

SELECT ID, MIN(Status)
FROM table
GROUP BY ID
ORDER BY ID
© www.soinside.com 2019 - 2024. All rights reserved.