在Oracle 中連接和分組查詢結果
處理Oracle 表中的資料時,連接和分組行對於組織和分析非常有用資訊.假設您有一個包含名稱列和對應群組名稱的表。
要擷取各個群組名稱中串聯的名稱,如果您使用的是Oracle 11g 或更高版本,則可以使用LISTAGG 函數:
SELECT group_name, LISTAGG(name, ', ') WITHIN GROUP (ORDER BY GROUP) "names" FROM name_table GROUP BY group_name
此查詢將按對應的群組名稱會將名稱分組,並傳回串聯的名稱。但是,如果您不使用 Oracle 11g,請考慮使用分析:
select grp, ltrim(max(sys_connect_by_path (name, ',' )), ',') scbp from (select name, grp, row_number() over (partition by grp order by name) rn from tab ) start with rn = 1 connect by prior rn = rn-1 and prior grp = grp group by grp order by grp
此查詢也會連接各自群組名稱中的名稱,使用分析來處理分組。
透過利用這些技術,您可以在 Oracle 中有效地連接和分組數據,從而更輕鬆地以有意義的方式分析和呈現資訊。
以上是如何在 Oracle 中連接和分組查詢結果?的詳細內容。更多資訊請關注PHP中文網其他相關文章!