Ich lösen www.db-class.com Übungen. Obwohl es spät ist, sind die Fragen immer noch interessant. Ich stolperte über letzte Aufgabe in Extras und kann die Lösung nicht herausfinden.SQL-Abfrage von www.db-class.com
Die SQL-Schema ist wie folgt:
create table Movie(mID int, title text, year int, director text);
create table Reviewer(rID int, name text);
create table Rating(rID int, mID int, stars int, ratingDate date);
Die gesamte Datenbank kann here
Die Frage ist die folgende obtainted werden:
Q12 Für jeden Regisseur, kehren Sie den Namen des Regisseurs zusammen mit den Titel (n) der Filme, die sie gerichtet, die die höchste Bewertung unter allen ihren Filmen erhalten haben, und die val von dieser Bewertung. Ignoriere Filme, deren Director NULL ist.
spezifischere Details zu geben, was hier das Problem:
Eine Abfrage
select m.mid, m.title, max(r.stars) as stars
from rating r natural join movie m
where m.director is NOT NULL group by m.mid
kehrt IDs von den meisten bewerteten Filme:
101 Gone with the Wind 4
103 The Sound of Music 3
104 E.T. 3
107 Avatar 5
108 Raiders of the Lost Ark 4
Eine weitere Abfrage
select m.director, max(r.stars) as stars
from rating r natural join movie m
where m.director is NOT NULL group by m.director
kehrt Namen der Direktoren mit den meisten bewerteten Filme für sie:
James Cameron 5
Robert Wise 3
Steven Spielberg 4
Victor Fleming 4
Wie die Abfragen verbinden und den Namen und die Sterne für die meisten bewertet Film für den Regisseur erhalten:
James Cameron Avatar 5
Robert Wise The Sound of Music 3
Steven Spielberg Raiders of the Lost Ark 4
Victor Fleming Gone with the Wind 4
Die Lösung gibt NULL-Directors zurück und erhält keine Titel. Die Aufgabe ist einfach ohne Titel oder ohne Regisseure, aber wenn beide benötigt werden, ist es viel schwieriger –
Nicht wirklich :) Ich habe den Filmtitel hinzugefügt und Null-Regisseure entfernt (Ich bin mir nicht sicher, wenn 'Filme ignorieren, deren Regisseur ist NULL' bedeutet um sie aus dem Ergebnis zu entfernen, also nur für den Fall, habe ich) –
Ich fand eine ähnliche Lösung, aber es gibt mehr als einen Regisseur für alle Filme. Die Antworten erfordern eindeutig einen Regisseur pro Film pro max (Sterne) –