Finn alle studenter som har flere kurs enn hvertfall en av
elevene i kurset Matematikk
|
SELECT navn, COUNT(kursid) AS "Fulgt antall kurs"
FROM person p, elevKurs ek
WHERE p.personid = ek.elevid
GROUP BY(navn)
HAVING COUNT(ek.kursid) > ANY(SELECT COUNT(kursid)
FROM elevKurs
WHERE elevid IN (SELECT elevid
FROM elevKurs
WHERE kursid = 1)
GROUP BY(elevid));
|
=> |
navn Fulgt antall kurs
-------------------- -----------------
Anne Evensen 3
Hans Jensen 2
Inger Karlsen 4
(3 row(s) affected)
|
|
SOME og ANY er det samme, så dermed kan man få samme resultat ved å skrive:
|
SELECT navn, COUNT(kursid) AS "Fulgt antall kurs"
FROM person p, elevKurs ek
WHERE p.personid = ek.elevid
GROUP BY(navn)
HAVING COUNT(ek.kursid) > SOME(SELECT COUNT(kursid)
FROM elevKurs
WHERE elevid IN (SELECT elevid
FROM elevKurs
WHERE kursid = 1)
GROUP BY(elevid));
|
=> |
navn Fulgt antall kurs
-------------------- -----------------
Anne Evensen 3
Hans Jensen 2
Inger Karlsen 4
(3 row(s) affected)
|
|
Skriv ut navnet og antall kurs for den/de som har tatt flest kurs
|
SELECT navn, COUNT(kursid) AS "Fulgt antall kurs"
FROM person p, elevKurs ek
WHERE p.personid = ek.elevid
GROUP BY(navn)
HAVING COUNT(ek.kursid) >= ALL(SELECT COUNT(kursid)
FROM elevKurs
GROUP BY(elevid));
|
=> |
navn Fulgt antall kurs
-------------------- -----------------
Inger Karlsen 4
(1 row(s) affected)
|
|
Skriv ut navn og kursnavn for lærere som også har vært elever
|
SELECT p.navn AS elev, k.navn AS kurs
FROM person p, elevKurs e, kurs k
WHERE EXISTS (SELECT *
FROM laererKurs l
WHERE l.laererid = e.elevid)
AND p.personid = e.elevid
AND k.kursid = e.kursid;
|
=> |
elev kurs
-------------------- -------------------------
Per Olsen Matematikk
(1 row(s) affected)
|
|
Skriv ut kursnavn for kurs som ikke ble kjørt høsten 2002
|
SELECT navn
FROM kurs k
WHERE NOT EXISTS (SELECT *
FROM elevKurs e
WHERE e.kursid = k.kursid
AND (blokk = '1-02' OR blokk = '2-02' OR blokk = '3-02'));
|
=> |
navn
-------------------------
Databaser
Matematikk II
Programmering for web
Engelsk fonetikk
(4 row(s) affected)
|
|
Elin K. Ajer Andreassen, 2004