-- DBS2.1.3.a:: -- Berechnen Sie die Summe aller Budgets (SUMME) sowie das minimale (MIN) und -- maximale Budget (MAX) für alle Kinofilme (Type=C) des Jahres 1989, bei denen das Budget -- in USD angegeben ist. (eine Anfrage!). Hinweis: verwenden Sie ... like '%USD%' ... -- Erwartete Spalten: summe, min, max SELECT SUM(b.BUDGET), MIN(b.BUDGET), MAX(b.BUDGET) FROM moviedb.MOVIE m JOIN moviedb.BUDGET b ON (m.ID = b.MOVIE) WHERE m.TYPE='C' AND m.YEAR=1989 AND b.CURRENCY_SYMBOL LIKE '%USD%' GROUP BY YEAR; -- DBS2.1.3.b:: -- Ermitteln Sie alle Genres, die in Kinofilmen aus dem Jahr 1960 eingesetzt wurden zusammen mit der Anzahl von -- Kinofilmen (Type C), in denen sie in dem Jahr verwendet wurden. (Jedes Genre sollte nur einmal auftauchen!). -- Erwartete Spalten: genre, anzahl SELECT g.GENRE, COUNT(m.ID) AS ANZAHL FROM moviedb.MOVIE m JOIN moviedb.GENRE g ON (g.MOVIE = m.ID) WHERE m.YEAR = 1960 AND m.TYPE = 'C' GROUP BY g.GENRE; -- DBS2.1.3.c:: -- Ermitteln Sie alle Genres, die in Kinofilmen aus dem Jahr 1960 eingesetzt wurden zusammen mit der Anzahl von -- Kinofilmen (Type C), in denen sie in dem Jahr verwendet wurden. (Jedes Genre sollte nur einmal auftauchen!). -- Schränken Sie die Abfrage so ein, dass nur Genres aufgelistet werden, zu denen es in 1960 mindestens -- 100 Kinofilme gab. -- Erwartete Spalten: genre, anzahl SELECT g.GENRE, COUNT(m.ID) AS ANZAHL FROM moviedb.MOVIE m JOIN moviedb.GENRE g ON (g.MOVIE = m.ID) WHERE m.YEAR = 1960 AND m.TYPE = 'C' GROUP BY g.GENRE HAVING COUNT(m.ID) >= 100; -- DBS2.1.3.d:: -- Ermitteln Sie alle Genres, die in Kinofilmen aus dem Jahr 1960 eingesetzt wurden zusammen mit der Anzahl von -- Kinofilmen (Type C), in denen sie in dem Jahr verwendet wurden. (Jedes Genre sollte nur einmal auftauchen!). -- Schränken Sie die Abfrage so ein, dass nur Genres aufgelistet werden, zu denen es in 1960 mindestens -- 100 Kinofilme gab. -- Sortieren Sie das Ergebnis nach Häufigkeit absteigend. -- Erwartete Spalten: genre, anzahl SELECT g.GENRE, COUNT(m.ID) AS ANZAHL FROM moviedb.MOVIE m JOIN moviedb.GENRE g ON (g.MOVIE = m.ID) WHERE m.YEAR = 1960 AND m.TYPE = 'C' GROUP BY g.GENRE HAVING COUNT(m.ID) >= 100 ORDER BY COUNT(m.ID) DESC; -- DBS2.1.3.e:: -- Finden Sie ID und Titel aller Kinofilme (Type=C), die mind. einen Nachfolger haben, und die mindestens einmal -- parodiert wurden. Ein Film hat einen Nachfolger, wenn die ID in der Tabelle FOLLOWS in der Spalte MOVIE -- verwendet wird. Ein Film wurde parodiert, wenn die ID in der Tabelle SPOOFS in der Spalte SPOOFED verwendet -- wird. Ein Film soll nur maximal einmal im Ergebnis sein, auch wenn er mehrere Nachfolger und Parodien hat. -- Erwartete Spalten: id, title SELECT DISTINCT m.ID, m.TITLE FROM moviedb.MOVIE m JOIN moviedb.FOLLOWS f ON (m.ID = f.MOVIE) JOIN moviedb.SPOOFS s ON (m.ID = s.SPOOFED) WHERE m.TYPE = 'C'; -- DBS2.1.3.f:: -- Finden Sie ID und Titel aller Kinofilme, die entweder mind. einen Nachfolger haben, oder mindestens einmal -- parodiert wurden, für die aber nicht beides zutrifft. -- Ein Film soll maximal einmal im Ergebnis sein. -- Hinweis: Es gibt unterschiedliche Lösungsmöglichkeiten. Denken Sie über Full Outer Joins nach, oder alternativ -- über Mengenoperationen. -- Erwartete Spalten: id, title SELECT DISTINCT m.ID, m.TITLE FROM moviedb.MOVIE m LEFT JOIN moviedb.FOLLOWS f ON (m.ID = f.MOVIE) LEFT JOIN moviedb.SPOOFS s ON (m.ID = s.SPOOFED) WHERE m.TYPE = 'C' AND (f.MOVIE IS NULL AND s.SPOOFED IS NOT NULL OR f.MOVIE IS NOT NULL AND s.SPOOFED IS NULL);