Angabe is im Thread als bild
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.
SommerKlausur 2009 SQL-Aufgabe!
Hier die angabe
und hier mein loesungsvorschlag:
Durchschnittliche Nettodauer einer Livereportage je Ort (4 Pkt.)
SELECT ort,avg(nettodauer)
FROM livereportage;
GROUP BY ort
Tage (jedoch keine doppeltenWerte) an denen Livereportagen uber Nurnberg nach
20:00 Uhr gesendet werden (5 Pkt.)
SELECT DISTINCT tag
FROM livereportage
JOIN onair USING (titel)
WHERE ort LIKE ‘N%rnberg’ AND beginn > 20:00;
Die Sendeanstalt “Frankenfunk” mochte zu jedem Reporter Name, Personalnum-
mer und Dauer seiner langsten Livesendung wissen (5 Pkt.)
SELECT name,persnr, max(nettodauer)
FROM reporter
JOIN onair USING (persnr)
JOIN livereportage USING (titel)
WHERE angestellt LIKE ‘Frankfurt’
GROUP BY persnr,name;
� SQL-Extended-Aufgabe (aka TOP n)
Wir wollen von den Angestellten, deren Angestelltennummern im Bereich von 2000
bis 4999 liegen die 4 Angestellten, die am l angsten Angestellt sind. Benutzen sie
dazu keine vendor-spezifischen Erweiterungen, sondern nur den SQL92-Standard.
Geben sie Name und Anstellungsbeginn aus und sortieren sie das Ergebnis nach
Anstellungsbeginn ansteigend.
CREATE VIEW angestellte AS
SELECT name,persnr,anstellungsbeginn
FROM reporter
WHERE persnr >=2000 AND persnr <=4999;
SELECT count() as rang,a1.name,a1.anstellungsbeginn
FROM angestellte a1, angestellte a2
WHERE a1.anstellungsbeginn >= a2.anstellungs.beginn
GROUP BY a1.persnr,a1.name,a1.anstellungsbeginn
HAVING count()<=4
ORDER BY count(*) ASC;