【发布时间】:2021-11-30 20:45:07
【问题描述】:
SELCT * FROM MyTable;
ID Status posted_date posted_by
---------------------------------------------------
0 invalid 01/01/2021 abc
1 in-progress 02/01/2021 xyz
0 invalid 03/01/2021 lmn
2 complete 04/01/2021 pqr
1 in-progress 05/01/2021 newton
2 complete 06/01/2021 einstein
2 complete 07/01/2021 jack
我需要按 ID 分组。 然后按posted_date 降序排列。 然后找出发布最新交易的用户。
在这种情况下,我的预期输出是,
ID Status posted_date posted_by
---------------------------------------------------
2 complete 07/01/2021 jack
1 in-progress 05/01/2021 newton
0 invalid 03/01/2021 lmn
以下是我尝试过的。我没有得到任何行。
SELECT COUNT(ID), ID, status, posted_by,posted_date
FROM MyTable
GROUP BY ID, status, posted_by,posted_date
HAVING COUNT(ID) > 1
ORDER BY posted_date DESC;
【问题讨论】:
-
暂时跳过 HAVING 子句,仔细查看 GROUP BY 结果。
标签: sql oracle greatest-n-per-group