a1.3
This commit is contained in:
parent
3c62b45941
commit
c021cc1fbc
|
@ -0,0 +1,80 @@
|
||||||
|
-- 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);
|
||||||
|
|
Loading…
Reference in New Issue