如何从重复值中获取第一行Oracle SQL查询[重复]

问题描述 投票:0回答:2
下面您可以找到带有值的表(我的表没有约束):

SELECT DISTINCT * FROM khalil;

输出:

ID VALUE -- ------- 1 yassine 1 khalil 2 amine
当我有重复的值时,我需要获得第一行。

我有两行,其中有[[id = 1,因此,在这种情况下,我需要第一行,分别是

id = 1value = 'yassine'

sql oracle greatest-n-per-group
2个回答
0
投票
这将返回每个ID的第一行。

0
投票
SQL> select id, 2 max(value) value 3 from khalil 4 group by id 5 order by id; ID VALUE ---------- -------------------- 1 yassine 2 amine SQL>

或者,使用分析函数(例如row_number,允许您

sort值),您可以按照以下步骤进行操作:

SQL> with temp as 2 (select id, 3 value, 4 row_number() over (partition by id order by value desc) rn 5 from khalil 6 ) 7 select id, 8 value 9 from temp 10 where rn = 1 11 order by id; ID VALUE ---------- -------------------- 1 yassine 2 amine SQL>

© www.soinside.com 2019 - 2024. All rights reserved.