我正在尝试从 listagg() 返回的列表中获取第一条记录。我已尝试使用 LIMIT、TOP、PARTITION,但对我没有任何作用。
查询是这样的:
select distinct(col1), col2, LISTAGG(col4, '; ')
WITHIN GROUP (ORDER BY....)
from table1 inner join table 2 on ..
group by ....;
因此,查询是获取所有满足条件的记录。现在,由于我有列表,我只需要为最新记录提供修复。
希望我清楚自己在做什么。感谢您的帮助。
最佳答案
为什么要为此使用 listagg()
?使用保持
:
SELECT MAX(COL4) KEEP (DENSE_RANK FIRST col4 ORDER BY . . .)
或者,如果没有 GROUP BY
,您可以只使用分析函数 FIRST_VALUE()
。
关于sql - 如何从 Oracle 中的 listagg 获取最高记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45902864/