Opdrachten bij top2000, versie 2003

advertisement
Oplossingen voetbaldatabase eredivisie, november 2005
1.
SELECT naam AS club_in_Amsterdam
FROM clubgegevens
WHERE stad="amsterdam";
2.
SELECT dag, count(*) AS aantal
FROM wedstrijden
GROUP BY dag
ORDER BY 2;
3.
SELECT COUNT(*) AS gelijkspel
FROM wedstrijden
WHERE uitscore=thuisscore;
of, maar dan wordt het huidige seizoen niet meegenomen,
SELECT SUM(gelijk)/2 AS gelijkspel
FROM eindstand;
4.
SELECT TOP 3 naam, SUM(thuisscore) AS doelpunten
FROM wedstrijden, clubgegevens
WHERE wedstrijden.thuisclub=clubgegevens.id
GROUP BY naam
ORDER BY 2 DESC;
5.
a) SELECT AVG(thuisscore+uitscore) AS gemiddeld
FROM wedstrijden;
en
b) SELECT SUM(thuisscore+uitscore) AS totaal
FROM wedstrijden;
6.
SELECT naam, count(*) AS titels
FROM eindstand, clubgegevens
WHERE positie=1
AND eindstand.club=clubgegevens.id
GROUP BY naam
ORDER BY 2 DESC;
7.
SELECT seizoen.seizoen, thuisclub.naam, uitclub.naam, thuisscore, uitscore
FROM wedstrijden, seizoen, uitclub, thuisclub
WHERE thuisscore+uitscore>12 AND seizoen.id=wedstrijden.seizoen AND wedstrijden.thuisclub=thuisclub.id AND
wedstrijden.uitclub=uitclub.id;
8.
SELECT TOP 5 naam, SUM(winst)+SUM(gelijk)+SUM(verlies) AS gesp, SUM(winst) AS w, SUM(gelijk) AS g,
SUM(verlies) AS v, 3*SUM(winst)+SUM(gelijk) AS punten
FROM eindstand, clubgegevens
WHERE eindstand.club=clubgegevens.id
GROUP BY naam
ORDER BY 6 DESC;
9.
SELECT naam, SUM(winst)+SUM(gelijk)+ SUM(verlies) AS gespeeld
FROM eindstand, clubgegevens
WHERE eindstand.club=clubgegevens.id
AND naam LIKE "Fe*oord"
GROUP BY naam
ORDER BY 2 DESC;
10. SELECT naam, positie, count(*) AS aantal
FROM eindstand, clubgegevens
WHERE eindstand.club=clubgegevens.id
AND naam='psv'
GROUP BY naam, positie;
11. a) Bij redundantie heft een database overtollige gegevens
b) Dit wordt een probleem als deze gegevens tegenstrijdig zijn!
c) In deze database moeten de eindstanden van een seizoen apart worden ingevoerd, terwijl ze ook uit de andere
tabellen af te leiden zijn.
12. SELECT provincie, COUNT (*) AS aantal
FROM clubgegevens
WHERE id IN
(SELECT thuisclub FROM wedstrijden WHERE seizoen=50;)
GROUP BY provincie
ORDER BY 2 DESC;
Download