以此示例数据:
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
我该怎么做才能检查完成状态,因此我只能在分组依据中返回已完成?
仅执行GROUP BY
ID列。使用MIN()
选择“待定之前完成”。
SELECT ID, MIN(Status)
FROM table
GROUP BY ID
ORDER BY ID