Aad*_*hii 4 sql datetime max aggregate-functions greatest-n-per-group
我有一张桌子。由此我需要获取每个“id”的最新“日期”。我为 One id 编写了查询。但我不知道如何申请多个id。(我的意思是每个id)
我对一个 id 的查询是(假设表名是 tt):
select * from (
SELECT DISTINCT id ,date FROM tt
WHERE Trim(id) ='1000082'
ORDER BY date desc
) where rownum<=1;
Run Code Online (Sandbox Code Playgroud)
GMB*_*GMB 13
如果只有两列,聚合就足够了:
select id, max(date) max_date
from mytable
group by id
Run Code Online (Sandbox Code Playgroud)
如果您有更多列并且希望整行包含每个 id 的最新日期,则一个选项使用相关子查询进行过滤:
select t.*
from mytable t
where t.date = (select max(t1.date) from mytable t1 where t1.id = t.id)
Run Code Online (Sandbox Code Playgroud)
或者您可以使用窗口函数,如果您的数据库支持它们:
select *
from (select t.*, row_number() over(partition by id order by date desc) rn from mytable t) t
where rn = 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
26662 次 |
| 最近记录: |