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

Wybierz wszystkie kolumny z tabeli 1 i jedną kolumnę z tabeli drugiej, która jest pogrupowana według?

Użyłbym listagg() w podzapytaniu:

select t1.*, xmlagg
from table1 t1 join
     (select name2, listagg(mother_name, ',') within group (order by mother_name) as xmlagg
      from table2 t2
      group by name2
     ) t2
     on t1.name1 = t2.name2;

EDYCJA:

Powyższe zapytanie wykonuje agregację przed sprzężeniem, więc może użyć t1.* . Możesz to również zrobić po dołączeniu:

select t1.name, listagg(mother_name, ',') within group (order by mother_name)
from table1 t1 join
     table2 t2
     on t1.name1 = t2.name2
group by t1.name;

Ten formularz utrudnia dodawanie dodatkowych kolumn do select , ale możesz agregować według swoich upodobań.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać GROUP BY na kolumnie CLOB z Oracle?

  2. oracle - konwertuj wiele formatów daty na jedną sformatowaną datę

  3. Znaczenie bajtów dump(systimestamp) Oracle

  4. Problem z formatem Symfony + Doctrine Oracle DateTime

  5. Parametry JDBC CallableStatement i Oracle SYS_REFCURSOR IN?