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;