Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Pilih semua kolom dari tabel 1 dan satu kolom dari tabel dua yang dikelompokkan berdasarkan?

Saya akan menggunakan listagg() dalam subkueri:

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;

EDIT:

Kueri di atas melakukan agregasi sebelum bergabung, sehingga dapat menggunakan t1.* . Anda juga dapat melakukannya setelah bergabung:

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;

Formulir ini mempersulit penambahan kolom tambahan ke select , tetapi Anda dapat menggabungkan dengan apa pun yang Anda suka.




  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-00907 Masalah tanda kurung kanan tidak ada - pilih dengan urutan dengan kueri penyisipan di dalam

  2. Bantuan Kueri - String di mana klausa memiliki &karakter

  3. Melarikan diri dari kutipan tunggal di PLSQL

  4. Oracle Berisi tidak berfungsi

  5. Saya ingin memigrasikan Oralce DB ke Amazon Redshift dengan AWS SCT