Hallo zusammen,
ich bin gerade erst am Einstieg in SQL und schlage mich mit einem Übungsblatt von der Uni rum. Gegeben ist eine Datenbank, die Informationen über Künstler, Alben, CDS und deren Genres speichert. Ich soll nun das Genre finden, zu dem es die meisten Alben gibt. Die Ausgabe soll also nur aus einer Zeile bestehen (mit den Attributen "genre" und "NoOfAlbums").
MAX(X.NoOfAlbums) liefert mir als Ausgabe bereits die gewünschte Anzahl aller Alben des Genres mit den meisten Alben:
An der Ausgabe des Namen des Genres scheitere ich derzeit leider noch. Wenn ich g.genre in den SELECT-Clause mit aufnehme, vermisst der Compiler logischerweise der Eintrag im FROM-Clause. Ein zweiter FROM-Clause ist meines Wissens nicht möglich, oder? Es wäre klasse, wenn mir jemand dabei auf die Sprünge helfen könnte.
Danke im Voraus und viele Grüße aus München
ich bin gerade erst am Einstieg in SQL und schlage mich mit einem Übungsblatt von der Uni rum. Gegeben ist eine Datenbank, die Informationen über Künstler, Alben, CDS und deren Genres speichert. Ich soll nun das Genre finden, zu dem es die meisten Alben gibt. Die Ausgabe soll also nur aus einer Zeile bestehen (mit den Attributen "genre" und "NoOfAlbums").
MAX(X.NoOfAlbums) liefert mir als Ausgabe bereits die gewünschte Anzahl aller Alben des Genres mit den meisten Alben:
SQL:
SELECT MAX(X.NoOfAlbums)
FROM (SELECT COUNT(DISTINCT a2a.albumid) AS NoOfAlbums, g.genre AS genre
FROM genres AS g
JOIN cds ON g.genreid = cds.genreid
JOIN artist2album AS a2a ON cds.artist2albumid = a2a.artist2albumid
JOIN albums AS alb ON a2a.albumid = alb.albumid
GROUP BY g.genre
) X
An der Ausgabe des Namen des Genres scheitere ich derzeit leider noch. Wenn ich g.genre in den SELECT-Clause mit aufnehme, vermisst der Compiler logischerweise der Eintrag im FROM-Clause. Ein zweiter FROM-Clause ist meines Wissens nicht möglich, oder? Es wäre klasse, wenn mir jemand dabei auf die Sprünge helfen könnte.
Danke im Voraus und viele Grüße aus München