In einigen
DBMS gibt es Features oder nachrüstbare Funktionen für eine POVIT-Abfrage,
in welcher man quasi eine Tabelle drehen kann, also aus Zeilen werden Spalten oder andersrum.
https://modern-sql.com/de/anwendung/pivot
z.B.
https://www.postgresql.org/docs/9.1/tablefunc.html
Aber ja, oftmals macht man das wohl über Joins bzw. Sub-Selects oder bissl gewöhnungbedürftiger mit GroupBy+Aggregate+Filter.