SQL Anfänger Problem

TLoZOoT

Benutzer
Beiträge
6
Nabend allerseits,

ich habe eine Filmdatenbank und möchte, dass die 3 Filme, in denen die meisten Schauspieler mitspielen, ausgegeben wird.

Ich habe dazu eine Tabelle "casting", in der die ID des Films hinterlegt ist, sowie die IDs der Schauspieler, die in den jeweiligen Filmen mitwirken, meine Idee war, dass ich die Anzahl der Schauspieler pro Film durch simples Zählen herausfinde und dann die 3 mit den meisten Schauspielern auswähle.

Konkret sieht das bisher so aus:

Code:
SELECT movieid, count(actorid) as 'Anzahl Schauspieler'
FROM casting
GROUP BY movieid;

Das group by ist hier noch der Knackpunkt, es wäre natürlich ideal, wenn ich hier einfach nach der Anzahl der Schauspieler sortieren könnte, dann würde ich über limit mir die ersten 3 Ausgaben anzeigen lassen...

Aber ich weiß nicht, wie ich das über die neue Spalte (Anzahl Neuerscheinungen) sortieren lassen kann... :(

Bitte um Hilfe...^^

Gruß TLoZOoT ;-)
 
Werbung:

ukulele

Datenbank-Guru
Beiträge
4.702
Es gibt viele Wege, hier mal einer:
Code:
SELECT    m.*,
        count(c.actorid) AS 'Anzahl Schauspieler'
FROM    movie m
LEFT JOIN casting c ON c.movieid = m.movieid
GROUP BY m.* -- Bitte alle Spalten angeben die nicht aggregiert werden und oben auch angezeigt werden sollen
ORDER BY count(c.actorid) DESC
LIMIT 3
Ich weiss nicht ob LIMIT an der richtigen Stelle steht (bin ja MSSQLer) und du solltest m.* durch die Spalten ersetzen, Titel z.B. und diese dann in GROUP BY aufführen.
 
Oben