【问题标题】:Oracle SQL query CONCAT, GROUP BYOracle SQL 查询 CONCAT、GROUP BY
【发布时间】:2022-09-22 22:38:57
【问题描述】:

我有这张桌子

我想按 POS ASC 排序,并聚合两列 X、Y 以便我的 ID 变为唯一。所以结果应该是这样的。

我尝试了很多小时,我可以聚合列 X,Y。但是当我做一个GROUP BY ID 和WMCONCAT(X,Y) 时,我无法通过 POS col 对其进行排序......

任何帮助也许..?谢谢。

  • 请您提供您正在尝试的 SQL,以便您遇到任何错误。

标签: sql oracle group-by


【解决方案1】:

不要使用WM_CONCAT,而是尝试使用LISTAGG 聚合函数:它允许您指定您选择的排序:

SELECT ID,  
       LISTAGG('(' || X || ', ' || Y || ')', ', ') WITHIN GROUP (ORDER BY POS) AS XY
FROM tab
GROUP BY ID

检查演示here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-17
    • 1970-01-01
    • 2011-06-21
    • 1970-01-01
    • 2010-11-12
    • 1970-01-01
    • 1970-01-01
    • 2016-02-20
    相关资源
    最近更新 更多