【SQL查詢】合並行_listagg


listagg

1. 語法:

  listagg(measure_expr, 'delimiter') within group (order by expr) [over (partition by expr)]

2. 功能說明:

  measure_expr:任何基於列的表達式

  delimiter:分割符

  order by expr:決定被拼接的順序

  over (partition by expr): 表中所有內容按照expr進行分區處理

3. 【示例1】:

create or replace view v as(  
  select 500 population, 'China' nation ,'Guangzhou' city from dual union all  
  select 1500 population, 'China' nation ,'Shanghai' city from dual union all  
  select 500 population, 'China' nation ,'Beijing' city from dual union all  
  select 1000 population, 'USA' nation ,'New York' city from dual union all  
  select 500 population, 'USA' nation ,'Bostom' city from dual union all  
  select 500 population, 'Japan' nation ,'Tokyo' city from dual   
);  

select v.population, v.nation, listagg(v.city, ',') within group (order by city) over (partition by nation) as rank from v;

  結果:

  

 

 

  【示例2】:

  

create or replace view v as(  
  select 500 population, 'China' nation ,'Guangzhou' city from dual union all  
  select 1500 population, 'China' nation ,'Shanghai' city from dual union all  
  select 500 population, 'China' nation ,'Beijing' city from dual union all  
  select 1000 population, 'USA' nation ,'New York' city from dual union all  
  select 500 population, 'USA' nation ,'Bostom' city from dual union all  
  select 500 population, 'Japan' nation ,'Tokyo' city from dual   
);  

select v.nation, listagg(v.city, ',') within group (order by city) as rank from v group by nation;

 

 

:listagg在這里啟動匯總的作用。sum將數值結果加在一起,而listagg是把字符串連接在一起。

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM