Oracle
 sql >> Baza danych >  >> RDS >> Oracle

Transpozycja i agregacja danych kolumn Oracle

Możesz użyć listagg() funkcja analizy okna dwa razy jako

with t1( Base, End ) as
( 
 select 'RMSA','Item 1' from dual union all
 select 'RMSA','Item 2' from dual union all 
 select 'RMSA','Item 3' from dual union all
 select 'RMSB','Item 1' from dual union all
 select 'RMSB','Item 2' from dual union all
 select 'RMSC','Item 4' from dual 
),
   t2 as
(   
select 
       listagg(base,';') within group (order by end) 
       as key,
          end   
  from t1
 group by end 
)
select key, 
       listagg(end,',') within group (order by end) 
       as Products
  from t2  
 group by key
 order by products;

Key           Products
---------     --------------
RMSA;RMSB     Item 1, Item 2
RMSA          Item 3
RMSC          Item 4  

Demo



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ORA-00054:zasób zajęty i pozyskiwanie z określonym NOWAIT lub upłynął limit czasu

  2. Bardzo długi czas otwarcia połączenia SQL

  3. Jak napisać instrukcję SQL z cudzysłowami?

  4. Jak uzyskać definicję tabeli w Oracle?

  5. Polecenie SQL ORA-00933 nie zostało poprawnie zakończone, ale dobre w programie SQL Developer