sql - 如何从 Oracle 中的 listagg 获取最高记录?

标签 sql oracle

我正在尝试从 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/

相关文章:

java - 无法连接到oracle数据库。它说 "Unable to determine jdbc url from datasource"

sql - 合并重叠的日期间隔

sql - T-SQL : How to return 0 rows in from stored procedure, 以及如何使用 XACT_ABORT 和 TRY/CATCH

oracle - VS2008 SSRS 用于查询 Oracle : How do I stop {oj} for outer Joins?

macos - Mac 上的 Oracle Sqlplus 客户端

oracle - 如何从两个最大值中获取最大值

MySQL 使用 AND 和 OR 进行复杂查询

sql - Oracle SQL 在具有相同日期的多行之间进行选择

sql - Postgres : select all row with count of a field greater than 1

sql - 如何将具有重复值的行转换为列?