sql >> Databasteknik >  >> RDS >> Oracle

Välj alla kolumner från tabell 1 och en kolumn från tabell två som är grupperad efter?

Jag skulle använda listagg() i en underfråga:

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:

Ovanstående fråga gör aggregeringen före kopplingen, så den kan använda t1.* . Du kan också göra det efter anslutningen:

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;

Detta formulär gör det svårare att lägga till ytterligare kolumner i select , men du kan aggregera efter vad du vill.




  1. SQLite Group By

  2. Liveuppdatering av MySQL-data

  3. Dataåtkomst från Raspberry Pi

  4. Hur ansluter man till en MySQL-databas från en Android-app?