SQL-Anzahl Zeilen pro Spalten zählen?
Hi, also ich habe eine Table "movies_genres" mit den Spalten : "movie_id", "genre".
Nun ist meine Aufgabe :
- Ermitteln Sie die Anzahl der Filme pro Genre. Geben Sie jeweils das Genre und die Anzahl der Filme (benannt Anzahl) aus.
Ich habe es so gelöst :
SELECT DISTINCT genre, count(movie_id)
FROM movies_genres group by genre
Nun ist meine Frage :
1.Passt es so?
2.Mit Distinct eliminiere ich Duplikate ?
3.Brauch ich distinct überhaupt ? mit group by werden doch auch Duplikate eliminiert?
1 Antwort
Das Distinct kannst du rausnehmen. Wie du selber schon vermutest: Wenn du nach Genre gruppierst, gibt es eh keine Duplikate im Ergebnis. (Wenn du im Select irgendeine Spalte hättest, die weder aggregiert (count, sum, max, min, avg etc.) wird, noch im Group By steht, würdest du bei den meisten Datenbanken sowieso eine Fehlermeldung kriegen.
Bei count(movie_id) kannst du evtl. noch einen alias hinten dran schreiben, damit die Spalte einen Namen kriegt (also z.B. count(movie_id) AS Anzahl)
Alles klar, habs schon gedacht, dass man es doppelt sortiert. Ah stimmt, man soll die Spalte ja noch umbenennen. Danke Dir !