gpt4 book ai didi

sql - 如何为 Oracle 中给定列中的每个不同值返回 1 行?

转载 作者:行者123 更新时间:2023-12-04 14:33:11 25 4
gpt4 key购买 nike

我的数据看起来像

NBR  ID  DT
1 1 01-DEC-01
1 2 01-JAN-01
2 3 01-JAN-01
2 4 O2-JAN-01

我只想为每个 NBR 获取一行,其中包含最早的日期。所以我希望结果是

NBR  ID  DT
1 2 01-JAN-01
2 3 01-JAN-01

但是,我不能使用 LIMIT,因为我使用的是 Oracle。我尝试了以下方法,但没有给出我期望的结果

select DISTINCT NBR, ID, DT
from tablename
group by NBR, ID, DT
order by DT

编辑:这不是该链接的副本,因为我是按 NBR 分组的。我希望每个不同的 NBR 有一行。

最佳答案

解决方案与limitorder by 无关,Oracle 与否。您想使用 row_number 解析函数轻松解决这个问题:

select nbr, id, dt
from (select nbr, id, dt,
row_number() over (partition by nbr order by dt) as rn
from tbl)
where rn = 1

关于sql - 如何为 Oracle 中给定列中的每个不同值返回 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37868704/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com