Hae kaikkien elokuvien nimet.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
Lumikki |
Fantasia |
Pinocchio |
Dumbo |
Bambi |
SELECT nimi FROM Elokuvat;
SELECT nimi FROM Elokuvat;
Hae kaikkien elokuvien nimet ja julkaisuvuodet.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
Lumikki | 1937 |
Fantasia | 1940 |
Pinocchio | 1940 |
Dumbo | 1941 |
Bambi | 1942 |
SELECT nimi,vuosi FROM Elokuvat;
SELECT nimi, vuosi FROM Elokuvat;
Hae kaikkien vuonna 1940 julkaistujen elokuvien nimet.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
SELECT nimi FROM Elokuvat WHERE vuosi=1940;
SELECT nimi FROM Elokuvat WHERE vuosi=1940;
Hae ennen vuotta 1950 julkaistujen elokuvien nimet.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Bambi | 1942 | 4 | Peter Pan | 1953 | 5 | Hiidenpata | 1985 |
|
Haluttu tulos
SELECT nimi FROM Elokuvat WHERE vuosi<1950;
SELECT nimi FROM Elokuvat WHERE vuosi<1950;
Hae vuosina 1940–1950 julkaistujen elokuvien nimet.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Bambi | 1942 | 4 | Peter Pan | 1953 | 5 | Hiidenpata | 1985 |
|
Haluttu tulos
SELECT nimi FROM Elokuvat WHERE vuosi>=1940 AND vuosi<=1950;
SELECT nimi FROM Elokuvat WHERE vuosi BETWEEN 1940 AND 1950;
Hae ennen vuotta 1950 tai vuoden 1980 jälkeen julkaistujen elokuvien nimet.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Bambi | 1942 | 4 | Peter Pan | 1953 | 5 | Hiidenpata | 1985 |
|
Haluttu tulos
Lumikki |
Fantasia |
Bambi |
Hiidenpata |
SELECT nimi FROM Elokuvat WHERE vuosi < 1950 OR vuosi > 1980;
SELECT nimi FROM Elokuvat WHERE vuosi<1950 OR vuosi>1980;
Hae kaikkien elokuvien nimet, joita ei ole julkaistu vuonna 1940.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
SELECT nimi FROM Elokuvat WHERE vuosi IS NOT 1940;
SELECT nimi FROM Elokuvat WHERE vuosi<>1940;
Hae kaikkien elokuvien nimet aakkosjärjestyksessä.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
Bambi |
Dumbo |
Fantasia |
Lumikki |
Pinocchio |
SELECT nimi FROM Elokuvat ORDER BY nimi;
SELECT nimi FROM Elokuvat ORDER BY nimi;
Hae kaikkien elokuvien nimet käänteisessä aakkosjärjestyksessä.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
Pinocchio |
Lumikki |
Fantasia |
Dumbo |
Bambi |
SELECT nimi FROM Elokuvat ORDER BY nimi DESC;
SELECT nimi FROM Elokuvat ORDER BY nimi DESC;
Hae elokuvien nimet ja julkaisuvuodet ensisijaisesti käänteisessä järjestyksessä julkaisuvuoden mukaan, toissijaisesti aakkosjärjestyksessä.
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
Bambi | 1942 |
Dumbo | 1941 |
Fantasia | 1940 |
Pinocchio | 1940 |
Lumikki | 1937 |
SELECT nimi,vuosi FROM Elokuvat ORDER BY vuosi DESC, nimi;
SELECT nimi, vuosi FROM Elokuvat ORDER BY vuosi DESC, nimi;
Hae kaikki eri etunimet.
Taulut
Nimetid | etunimi | sukunimi |
---|
1 | Anna | Korhonen | 2 | Anna | Virtanen | 3 | Pekka | Korhonen | 4 | Pekka | Lahtinen | 5 | Pekka | Virtanen |
|
Haluttu tulos
SELECT DISTINCT etunimi FROM Nimet;
SELECT DISTINCT etunimi FROM Nimet;
Hae kaikki eri nimet.
Taulut
Nimetid | etunimi | sukunimi |
---|
1 | Anna | Korhonen | 2 | Anna | Korhonen | 3 | Pekka | Korhonen | 4 | Pekka | Virtanen | 5 | Pekka | Virtanen | 6 | Pekka | Virtanen |
|
Haluttu tulos
Anna | Korhonen |
Pekka | Korhonen |
Pekka | Virtanen |
SELECT DISTINCT etunimi, sukunimi FROM Nimet;
SELECT DISTINCT etunimi, sukunimi FROM Nimet;
Hae työntekijöiden määrä.
Taulut
Tyontekijatid | nimi | palkka |
---|
1 | Uolevi | 2500 | 2 | Maija | 3000 | 3 | Liisa | 5000 | 4 | Kaaleppi | 1500 |
|
Haluttu tulos
SELECT COUNT(*) FROM Tyontekijat;
SELECT COUNT(*) FROM Tyontekijat;
Hae niiden työntekijöiden määrä, joiden palkka on yli 2000.
Taulut
Tyontekijatid | nimi | palkka |
---|
1 | Uolevi | 2500 | 2 | Maija | 3000 | 3 | Liisa | 5000 | 4 | Kaaleppi | 1500 |
|
Haluttu tulos
SELECT COUNT(*) FROM Tyontekijat WHERE palkka > 2000;
SELECT COUNT(*) FROM Tyontekijat WHERE palkka>2000;
Hae työntekijöiden yhteispalkka.
Taulut
Tyontekijatid | nimi | palkka |
---|
1 | Uolevi | 2500 | 2 | Maija | 3000 | 3 | Liisa | 5000 | 4 | Kaaleppi | 1500 |
|
Haluttu tulos
SELECT SUM(palkka) FROM Tyontekijat;
SELECT SUM(palkka) FROM Tyontekijat;
Hae suurin työntekijän palkka.
Taulut
Tyontekijatid | nimi | palkka |
---|
1 | Uolevi | 2500 | 2 | Maija | 3000 | 3 | Liisa | 5000 | 4 | Kaaleppi | 1500 |
|
Haluttu tulos
SELECT MAX(palkka) FROM Tyontekijat;
SELECT MAX(palkka) FROM Tyontekijat;
Hae eri yritysten määrä.
Taulut
Tyontekijatid | nimi | palkka | yritys |
---|
1 | Uolevi | 5000 | Google | 2 | Maija | 6000 | Google | 3 | Liisa | 2000 | Amazon | 4 | Kaaleppi | 7500 | Microsoft |
|
Haluttu tulos
SELECT COUNT(DISTINCT yritys) FROM Tyontekijat;
SELECT COUNT(DISTINCT yritys) FROM Tyontekijat;
Hae jokaisen yrityksen työntekijöiden määrä.
SELECT yritys, COUNT(*) FROM Tyontekijat GROUP BY yritys;
SELECT yritys, COUNT(*) FROM Tyontekijat GROUP BY yritys;
Hae jokaisesta yrityksestä suurin työntekijän palkka.
Taulut
Tyontekijatid | nimi | palkka | yritys |
---|
1 | Uolevi | 5000 | Google | 2 | Maija | 6000 | Google | 3 | Liisa | 2000 | Amazon | 4 | Kaaleppi | 7500 | Microsoft |
|
Haluttu tulos
Google | 6000 |
Amazon | 2000 |
Microsoft | 7500 |
SELECT yritys, MAX(palkka) FROM Tyontekijat GROUP BY yritys;
SELECT yritys, MAX(palkka) FROM Tyontekijat GROUP BY yritys;
Näytä suurin työntekijän palkka yrityksistä, joissa se on ainakin 5000.
Taulut
Tyontekijatid | nimi | palkka | yritys |
---|
1 | Uolevi | 5000 | Google | 2 | Maija | 6000 | Google | 3 | Liisa | 2000 | Amazon | 4 | Kaaleppi | 7500 | Microsoft |
|
Haluttu tulos
SELECT yritys, MAX(palkka) FROM Tyontekijat WHERE palkka >= 5000 GROUP BY yritys;
SELECT yritys, MAX(palkka) FROM Tyontekijat GROUP BY yritys HAVING MAX(palkka)>=5000;
Muodosta tuloslista, jossa näkyvät kaikki tulokset.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 300 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 3 | 500 |
|
Haluttu tulos
Uolevi | 250 |
Uolevi | 300 |
Maija | 100 |
Maija | 350 |
Kaaleppi | 500 |
SELECT Pelaajat.nimi, Tulokset.tulos FROM Pelaajat, Tulokset WHERE Tulokset.pelaaja_id = Pelaajat.id;
SELECT P.nimi, T.tulos FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id;
Muodosta tuloslista, jossa näkyvät Uolevin tulokset.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 300 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 3 | 500 |
|
Haluttu tulos
SELECT Pelaajat.nimi, Tulokset.tulos FROM Pelaajat, Tulokset WHERE Tulokset.pelaaja_id = Pelaajat.id AND Pelaajat.nimi='Uolevi';
SELECT P.nimi, T.tulos FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id AND P.nimi='Uolevi';
Muodosta tuloslista, jossa näkyvät tulokset, jotka ovat parempia kuin 250.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 300 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 3 | 400 | 6 | 3 | 500 |
|
Haluttu tulos
Uolevi | 300 |
Maija | 350 |
Kaaleppi | 400 |
Kaaleppi | 500 |
SELECT Pelaajat.nimi, Tulokset.tulos FROM Pelaajat, Tulokset WHERE Tulokset.pelaaja_id = Pelaajat.id AND Tulokset.tulos > 250;
SELECT P.nimi, T.tulos FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id AND T.tulos>250;
Muodosta tuloslista, jossa näkyy kaikki tulokset järjestettynä ensisijaisesti käänteisesti pistemäärän mukaan ja toissijaisesti nimen mukaan.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 350 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 3 | 500 |
|
Haluttu tulos
Kaaleppi | 500 |
Maija | 350 |
Uolevi | 350 |
Uolevi | 250 |
Maija | 100 |
SELECT Pelaajat.nimi, Tulokset.tulos FROM Pelaajat, Tulokset WHERE Tulokset.pelaaja_id = Pelaajat.id ORDER BY Tulokset.tulos DESC, Pelaajat.nimi;
SELECT P.nimi, T.tulos FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id ORDER BY T.tulos DESC, P.nimi;
Ilmoita jokaisesta pelaajasta, mikä on hänen paras tuloksensa. Voit olettaa, että jokaisella pelaajalla on ainakin yksi tulos.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 300 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 3 | 500 |
|
Haluttu tulos
Uolevi | 300 |
Maija | 350 |
Kaaleppi | 500 |
SELECT Pelaajat.nimi, MAX(Tulokset.tulos) FROM Pelaajat, Tulokset WHERE Tulokset.pelaaja_id = Pelaajat.id GROUP BY nimi;
SELECT P.nimi, MAX(T.tulos) FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id GROUP BY P.id;
Ilmoita jokaisesta pelaajasta, montako tulosta hänellä on. Voit olettaa, että jokaisella pelaajalla on ainakin yksi tulos.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 300 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 3 | 500 |
|
Haluttu tulos
SELECT nimi, COUNT(*) FROM Pelaajat, Tulokset WHERE pelaaja_id = Pelaajat.id GROUP BY nimi;
SELECT P.nimi, COUNT(T.tulos) FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id GROUP BY P.id;
Hae kaikista suorituksista opiskelijan nimi, kurssin nimi ja arvosana.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 4 | 5 | 3 | 3 | 4 |
|
Haluttu tulos
Uolevi | Ohpe | 3 |
Uolevi | Ohja | 4 |
Maija | Ohpe | 2 |
Maija | Lama | 5 |
Kaaleppi | Tira | 4 |
SELECT Opiskelijat.nimi, Kurssit.nimi, arvosana FROM Opiskelijat, Kurssit, Suoritukset WHERE Suoritukset.kurssi_id = Kurssit.id AND Suoritukset.opiskelija_id = Opiskelijat.id;
SELECT O.nimi, K.nimi, S.arvosana FROM Opiskelijat O, Kurssit K, Suoritukset S WHERE O.id=S.opiskelija_id AND K.id=S.kurssi_id;
Hae kaikista Uolevin suorituksista kurssin nimi ja arvosana.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 4 | 5 | 3 | 3 | 4 |
|
Haluttu tulos
SELECT Kurssit.nimi, arvosana FROM Opiskelijat, Kurssit, Suoritukset WHERE Suoritukset.kurssi_id = Kurssit.id AND Suoritukset.opiskelija_id = Opiskelijat.id AND Opiskelijat.nimi = 'Uolevi';
SELECT K.nimi, S.arvosana FROM Opiskelijat O, Kurssit K, Suoritukset S WHERE O.id=S.opiskelija_id AND K.id=S.kurssi_id AND O.nimi='Uolevi';
Hae kaikista Ohpen suorituksista opiskelijan nimi ja arvosana.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 4 | 5 | 3 | 3 | 4 |
|
Haluttu tulos
SELECT Opiskelijat.nimi, arvosana FROM Opiskelijat, Kurssit, Suoritukset WHERE Suoritukset.kurssi_id = Kurssit.id AND Suoritukset.opiskelija_id = Opiskelijat.id AND Kurssit.nimi = 'Ohpe';
SELECT O.nimi, S.arvosana FROM Opiskelijat O, Kurssit K, Suoritukset S WHERE O.id=S.opiskelija_id AND K.id=S.kurssi_id AND K.nimi='Ohpe';
Hae kaikki suoritukset, joissa arvosana on 4 tai 5.
SELECT Opiskelijat.nimi, Kurssit.nimi, arvosana FROM Opiskelijat, Kurssit, Suoritukset WHERE Suoritukset.kurssi_id = Kurssit.id AND Suoritukset.opiskelija_id = Opiskelijat.id AND (Suoritukset.arvosana = 4 OR Suoritukset.arvosana = 5);;
SELECT O.nimi, K.nimi, S.arvosana FROM Opiskelijat O, Kurssit K, Suoritukset S WHERE O.id=S.opiskelija_id AND K.id=S.kurssi_id AND S.arvosana BETWEEN 4 AND 5;
Hae jokaisesta opiskelijasta suoritusten määrä. Voit olettaa, että jokaisella opiskelijalla on ainakin yksi suoritus.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 4 | 5 | 3 | 3 | 4 |
|
Haluttu tulos
SELECT Opiskelijat.nimi, COUNT(*) FROM Opiskelijat, Kurssit, Suoritukset WHERE Suoritukset.opiskelija_id = Opiskelijat.id AND Suoritukset.kurssi_id = Kurssit.id GROUP BY Opiskelijat.nimi;
SELECT O.nimi, COUNT(*) FROM Opiskelijat O, Suoritukset S WHERE O.id=S.opiskelija_id GROUP BY O.id;
Hae jokaisesta opiskelijasta paras suorituksen arvosana. Voit olettaa, että jokaisella opiskelijalla on ainakin yksi suoritus.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 4 | 5 | 3 | 3 | 4 |
|
Haluttu tulos
SELECT Opiskelijat.nimi, MAX(Suoritukset.arvosana) FROM Opiskelijat, Kurssit, Suoritukset WHERE Suoritukset.opiskelija_id = Opiskelijat.id AND Suoritukset.kurssi_id = Kurssit.id GROUP BY Opiskelijat.nimi;
SELECT O.nimi, MAX(S.arvosana) FROM Opiskelijat O, Suoritukset S WHERE O.id=S.opiskelija_id GROUP BY O.id;
Hae tiedot kaikista lentoyhteyksistä.
Taulut
Kaupungitid | nimi |
---|
1 | Helsinki | 2 | Tukholma | 3 | Oslo | 4 | Turku |
| | Lennotid | mista_id | minne_id |
---|
1 | 1 | 2 | 2 | 1 | 3 | 3 | 2 | 3 | 4 | 2 | 4 |
|
Haluttu tulos
Helsinki | Tukholma |
Helsinki | Oslo |
Tukholma | Oslo |
Tukholma | Turku |
SELECT mista.nimi, minne.nimi FROM Kaupungit mista, Kaupungit minne, Lennot WHERE Lennot.mista_id = mista.id AND Lennot.minne_id = minne.id;
SELECT A.nimi, B.nimi FROM Kaupungit A, Kaupungit B, Lennot L WHERE L.mista_id=A.id AND L.minne_id=B.id;
Hae kohteet kaikista lennoista, jotka lähtevät Helsingistä.
Taulut
Kaupungitid | nimi |
---|
1 | Helsinki | 2 | Tukholma | 3 | Oslo | 4 | Turku |
| | Lennotid | mista_id | minne_id |
---|
1 | 1 | 2 | 2 | 1 | 3 | 3 | 2 | 3 | 4 | 2 | 4 |
|
Haluttu tulos
SELECT k2.nimi AS minne
FROM Lennot, Kaupungit AS k1, Kaupungit AS k2
WHERE Lennot.mista_id = k1.id
AND Lennot.minne_id = k2.id AND k1.nimi = 'Helsinki'
ORDER BY Lennot.mista_id;
SELECT B.nimi FROM Kaupungit A, Kaupungit B, Lennot L WHERE L.mista_id=A.id AND L.minne_id=B.id AND A.nimi='Helsinki';
Ilmoita jokaisesta pelaajasta, montako tulosta hänellä on (myös vaikka ei olisi tuloksia).
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 250 | 2 | 1 | 300 | 3 | 2 | 100 | 4 | 2 | 350 | 5 | 2 | 500 |
|
Haluttu tulos
SELECT Pelaajat.nimi, (SELECT COUNT(*) FROM Tulokset
WHERE Pelaajat.id = Tulokset.pelaaja_id)
FROM Pelaajat;
SELECT P.nimi, COUNT(T.tulos) FROM Pelaajat P LEFT JOIN Tulokset T ON P.id=T.pelaaja_id GROUP BY P.id;
Hae jokaisesta opiskelijasta suoritusten määrä (myös vaikka ei olisi suorituksia).
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 3 | 4 | 2 | 4 | 5 |
|
Haluttu tulos
SELECT Opiskelijat.nimi, (SELECT COUNT(*) FROM Suoritukset
WHERE Opiskelijat.id = Suoritukset.opiskelija_id)
FROM Opiskelijat;
SELECT O.nimi, COUNT(S.arvosana) FROM Opiskelijat O LEFT JOIN Suoritukset S ON O.id=S.opiskelija_id GROUP BY O.id;
Hae jokaisesta kurssista suorittajien määrä (myös vaikka ei olisi suorituksia).
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 2 | 5 | 3 | 4 | 4 |
|
Haluttu tulos
SELECT Kurssit.nimi, (SELECT COUNT(*) FROM Suoritukset
WHERE Kurssit.id = Suoritukset.kurssi_id)
FROM Kurssit;
SELECT K.nimi, COUNT(S.arvosana) FROM Kurssit K LEFT JOIN Suoritukset S ON K.id=S.kurssi_id GROUP BY K.id;
Hae nimet kaikista kursseista, joita on suoritettu ainakin kerran.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 2 | 5 | 3 | 4 | 4 |
|
Haluttu tulos
SELECT DISTINCT Kurssit.nimi
FROM Opiskelijat, Kurssit, Suoritukset
WHERE Opiskelijat.id = Suoritukset.opiskelija_id
AND Kurssit.id = Suoritukset.kurssi_id
ORDER BY Suoritukset.arvosana;
SELECT DISTINCT K.nimi FROM Kurssit K, Suoritukset S WHERE K.id=S.kurssi_id;
Hae nimet kaikista kursseista, joita ei ole suoritettu kertaakaan.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Kurssitid | nimi |
---|
1 | Ohpe | 2 | Ohja | 3 | Tira | 4 | Lama |
| | Suorituksetopiskelija_id | kurssi_id | arvosana |
---|
1 | 1 | 3 | 1 | 2 | 4 | 2 | 1 | 2 | 2 | 2 | 5 | 3 | 4 | 4 |
|
Haluttu tulos
SELECT Kurssit.nimi FROM Kurssit
LEFT JOIN Suoritukset ON Kurssit.id = Suoritukset.kurssi_id
WHERE Suoritukset.kurssi_id IS NULL;
SELECT K.nimi FROM Kurssit K LEFT JOIN Suoritukset S ON K.id=S.kurssi_id GROUP BY K.id HAVING COUNT(S.arvosana)=0;
Hae jokaisesta kaupungista, montako lentoa sieltä lähtee (myös vaikka ei olisi lentoja).
Taulut
Kaupungitid | nimi |
---|
1 | Helsinki | 2 | Tukholma | 3 | Oslo | 4 | Turku |
| | Lennotid | mista_id | minne_id |
---|
1 | 1 | 2 | 2 | 1 | 3 | 3 | 2 | 3 | 4 | 3 | 4 |
|
Haluttu tulos
Helsinki | 2 |
Tukholma | 1 |
Oslo | 1 |
Turku | 0 |
SELECT Kaupungit.nimi, (SELECT COUNT(*) FROM Lennot
WHERE Kaupungit.id = Lennot.mista_id)
FROM Kaupungit;
SELECT K.nimi, COUNT(L.minne_id) FROM Kaupungit K LEFT JOIN Lennot L ON K.id=L.mista_id GROUP BY K.id;
Hae jokaisen tuotteen hinta kaksinkertaisena.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 5 | 2 | lanttu | 8 | 3 | nauris | 6 | 4 | porkkana | 2 |
|
Haluttu tulos
selleri | 10 |
lanttu | 16 |
nauris | 12 |
porkkana | 4 |
SELECT Tuotteet.nimi, (Tuotteet.hinta * 2) FROM Tuotteet;
SELECT nimi, hinta*2 FROM Tuotteet;
Hae kaikki tuotteet, joiden hinta on parillinen.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 5 | 2 | lanttu | 8 | 3 | nauris | 7 | 4 | porkkana | 2 |
|
Haluttu tulos
SELECT Tuotteet.nimi, Tuotteet.hinta
FROM Tuotteet WHERE (Tuotteet.hinta % 2 == 0);
SELECT nimi, hinta FROM Tuotteet WHERE hinta%2=0;
Hae jokaisen sanan pituus merkkeinä.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT sana, LENGTH(sana) FROM Sanat;
SELECT sana, LENGTH(sana) FROM Sanat;
Hae kaikki sanat, joiden pituus on alle 6 merkkiä.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT Sanat.sana FROM Sanat WHERE LENGTH(sana) < 6;
SELECT sana FROM Sanat WHERE LENGTH(sana)<6;
Hae sanat järjestettynä ensisijaisesti pituuden mukaan ja toissijaisesti aakkosjärjestyksen mukaan.
SELECT Sanat.sana FROM Sanat ORDER BY LENGTH(Sanat.sana), Sanat.sana;
SELECT sana FROM Sanat ORDER BY LENGTH(sana), sana;
Hae käyttäjien koko nimet yhtenä sarakkeena.
Taulut
Kayttajatid | etunimi | sukunimi |
---|
1 | Liisa | Virtanen | 2 | Anna | Korhonen | 3 | Kalle | Ojala |
|
Haluttu tulos
Liisa Virtanen |
Anna Korhonen |
Kalle Ojala |
SELECT etunimi || ' ' || sukunimi FROM Kayttajat;
SELECT etunimi || ' ' || sukunimi FROM Kayttajat;
Hae kaikkien sanojen yhteispituus.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT SUM(LENGTH(sana)) FROM Sanat;
SELECT SUM(LENGTH(sana)) FROM Sanat;
Laske jokaisen tilauksen yhteishinta.
Taulut
Tilauksetid | tuote | hinta | maara |
---|
1 | lanttu | 4 | 10 | 2 | selleri | 7 | 20 | 3 | nauris | 5 | 15 |
|
Haluttu tulos
lanttu | 40 |
selleri | 140 |
nauris | 75 |
SELECT Tilaukset.tuote,
(Tilaukset.hinta * Tilaukset.maara)
FROM Tilaukset;
SELECT tuote, hinta*maara FROM Tilaukset;
Laske kaikkien tilausten yhteishintojen summa.
Taulut
Tilauksetid | tuote | hinta | maara |
---|
1 | lanttu | 4 | 10 | 2 | selleri | 7 | 20 | 3 | nauris | 5 | 15 |
|
Haluttu tulos
SELECT SUM(hinta *maara) FROM Tilaukset;
SELECT SUM(hinta*maara) FROM Tilaukset;
Hae kaikkien elokuvien nimet, jotka on julkaistu karkausvuonna. (Vuosi on karkausvuosi, jos se on jaollinen 4:llä. Jos vuosi on jaollinen 100:lla, se on karkausvuosi vain, jos se on myös jaollinen 400:lla.)
Taulut
Elokuvatid | nimi | vuosi |
---|
1 | Lumikki | 1937 | 2 | Fantasia | 1940 | 3 | Pinocchio | 1940 | 4 | Dumbo | 1941 | 5 | Bambi | 1942 |
|
Haluttu tulos
SELECT Elokuvat.nimi FROM Elokuvat WHERE (Elokuvat.vuosi % 4 == 0 AND Elokuvat.vuosi % 100
IS NOT 0 OR Elokuvat.vuosi % 400 == 0);
SELECT nimi FROM Elokuvat WHERE vuosi%4=0 AND (vuosi%100<>0 OR vuosi%400=0);
Hae kaikki tuotteet, joiden hinta on halvin hinta.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 7 | 2 | lanttu | 5 | 3 | retiisi | 8 | 4 | nauris | 5 |
|
Haluttu tulos
SELECT Tuotteet.nimi FROM Tuotteet
WHERE Tuotteet.hinta IN (SELECT MIN(Tuotteet.hinta) FROM Tuotteet);
SELECT nimi FROM Tuotteet WHERE hinta=(SELECT MIN(hinta) FROM Tuotteet);
Hae kaikki tuotteet, joiden hinta on enintään kaksinkertainen halvimpaan hintaan verrattuna.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 7 | 2 | lanttu | 3 | 3 | retiisi | 5 | 4 | nauris | 6 |
|
Haluttu tulos
SELECT Tuotteet.nimi FROM Tuotteet
WHERE Tuotteet.hinta <=
((SELECT MIN(Tuotteet.hinta) FROM Tuotteet) * 2);
SELECT nimi FROM Tuotteet WHERE hinta <= 2*(SELECT MIN(hinta) FROM Tuotteet);
Hae kaikki tuotteet, joiden hintaa ei ole millään muulla tuotteella.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 5 | 2 | lanttu | 3 | 3 | retiisi | 5 | 4 | nauris | 6 |
|
Haluttu tulos
SELECT t1.nimi
FROM Tuotteet t1
WHERE t1.hinta
NOT IN (SELECT t2.hinta
FROM Tuotteet t2
WHERE t2.id <> t1.id);
SELECT nimi FROM Tuotteet WHERE hinta IN (SELECT hinta FROM Tuotteet GROUP BY hinta HAVING COUNT(*)=1);
Hae aakkosjärjestyksessä ensimmäinen sana.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT sana FROM Sanat ORDER BY sana LIMIT 1;
SELECT MIN(sana) FROM Sanat;
Hae aakkosjärjestyksessä toinen sana. Voit olettaa, että taulussa ei ole kahta samaa sanaa.
SELECT sana FROM Sanat ORDER BY sana LIMIT 1 OFFSET 1;
SELECT sana FROM Sanat ORDER BY sana LIMIT 1 OFFSET 1;
Hae kaikki sanat paitsi aakkosjärjestyksessä ensimmäinen. Voit olettaa, että taulussa ei ole kahta samaa sanaa.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT sana FROM Sanat ORDER BY sana LIMIT 10 OFFSET 1;
SELECT sana FROM Sanat ORDER BY sana LIMIT (SELECT COUNT(*)-1 FROM Sanat) OFFSET 1;
Hae kaikki sanat, joissa esiintyy i-kirjain.
SELECT sana FROM Sanat WHERE sana LIKE '%i%';
SELECT sana FROM Sanat WHERE sana LIKE '%i%';
Hae kaikki sanat, jotka alkavat a-kirjaimella.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT sana FROM Sanat WHERE sana LIKE 'a%';
SELECT sana FROM Sanat WHERE sana LIKE 'a%';
Hae kaikki sanat, joissa on tasan viisi kirjainta ja toinen kirjain on p.
Taulut
Sanatid | sana |
---|
1 | apina | 2 | banaani | 3 | cembalo |
|
Haluttu tulos
SELECT Sanat.sana
FROM Sanat
WHERE LENGTH(Sanat.sana) = 5
AND Sanat.sana LIKE '%p%%%';
SELECT sana FROM Sanat WHERE sana LIKE '_p___';
Hae kaikki sanat, joissa on tasan kaksi a-kirjainta.
SELECT Sanat.sana FROM Sanat WHERE (LENGTH(Sanat.sana) - LENGTH(REPLACE(Sanat.sana, 'a', '')) = 2);
SELECT sana FROM Sanat WHERE sana LIKE '%a%a%' AND sana NOT LIKE '%a%a%a%';
Hae jokaisesta käyttäjästä tieto, monessako ryhmässä hän on.
Taulut
Kayttajatid | tunnus |
---|
1 | uolevi | 2 | maija | 3 | kaaleppi | 4 | liisa |
| | Ryhmat | | Oikeudetkayttaja_id | ryhma_id |
---|
1 | 1 | 2 | 1 | 3 | 1 | 3 | 2 |
|
Haluttu tulos
uolevi | 1 |
maija | 1 |
kaaleppi | 2 |
liisa | 0 |
SELECT Kayttajat.tunnus, (SELECT COUNT(*)
FROM Oikeudet, Ryhmat
WHERE Kayttajat.id = Oikeudet.kayttaja_id
AND Oikeudet.ryhma_id = Ryhmat.id)
FROM Kayttajat
SELECT K.tunnus, COUNT(O.ryhma_id) FROM Kayttajat K LEFT JOIN Oikeudet O ON K.id=O.kayttaja_id GROUP BY K.id;
Hae jokaisesta ryhmästä tieto, montako käyttäjää siihen kuuluu.
SELECT Ryhmat.nimi, (SELECT COUNT(Oikeudet.ryhma_id)
FROM Oikeudet WHERE Oikeudet.ryhma_id = Ryhmat.id) FROM Ryhmat;
SELECT R.nimi, COUNT(O.kayttaja_id) FROM Ryhmat R LEFT JOIN Oikeudet O ON R.id=O.ryhma_id GROUP BY R.id;
Hae kaikki käyttäjät, jotka kuuluvat yli yhteen ryhmään.
Taulut
Kayttajatid | tunnus |
---|
1 | uolevi | 2 | maija | 3 | kaaleppi | 4 | liisa |
| | Ryhmat | | Oikeudetkayttaja_id | ryhma_id |
---|
1 | 1 | 2 | 1 | 3 | 1 | 3 | 2 |
|
Haluttu tulos
SELECT Kayttajat.tunnus
FROM Kayttajat
WHERE ((SELECT COUNT(Oikeudet.kayttaja_id)
FROM Oikeudet WHERE Oikeudet.kayttaja_id = Kayttajat.id) >= 2);
SELECT K.tunnus FROM Kayttajat K LEFT JOIN Oikeudet O ON K.id=O.kayttaja_id GROUP BY K.id HAVING COUNT(O.ryhma_id) > 1;
Hae kaikki käyttäjät, jotka kuuluvat ainakin yhteen samaan ryhmään käyttäjän "uolevi" kanssa.
Taulut
Kayttajatid | tunnus |
---|
1 | uolevi | 2 | maija | 3 | kaaleppi | 4 | liisa |
| | Ryhmat | | Oikeudetkayttaja_id | ryhma_id |
---|
1 | 1 | 1 | 2 | 2 | 1 | 4 | 2 |
|
Haluttu tulos
SELECT Kayttajat.tunnus
FROM Kayttajat WHERE Kayttajat.id
IN (SELECT Oikeudet.kayttaja_id FROM Oikeudet WHERE Oikeudet.ryhma_id
IN (SELECT Oikeudet.ryhma_id FROM Oikeudet WHERE Oikeudet.kayttaja_id = 1));
SELECT DISTINCT A.tunnus FROM Kayttajat A, Kayttajat B, Oikeudet X, Oikeudet Y WHERE A.id=X.kayttaja_id AND B.id=Y.kayttaja_id AND X.ryhma_id=Y.ryhma_id AND B.tunnus='uolevi';
Hae kaikki käyttäjät, jotka eivät kuulu mihinkään samaan ryhmään käyttäjän "uolevi" kanssa.
Taulut
Kayttajatid | tunnus |
---|
1 | uolevi | 2 | maija | 3 | kaaleppi | 4 | liisa |
| | Ryhmat | | Oikeudetkayttaja_id | ryhma_id |
---|
1 | 1 | 1 | 2 | 2 | 1 | 4 | 2 |
|
Haluttu tulos
SELECT Kayttajat.tunnus FROM Kayttajat WHERE Kayttajat.id
NOT IN (SELECT Oikeudet.kayttaja_id FROM Oikeudet WHERE Oikeudet.ryhma_id
IN (SELECT Oikeudet.ryhma_id FROM Oikeudet, Kayttajat WHERE Oikeudet.kayttaja_id == 1));
SELECT tunnus FROM Kayttajat WHERE tunnus NOT IN (SELECT A.tunnus FROM Kayttajat A, Kayttajat B, Oikeudet X, Oikeudet Y WHERE A.id=X.kayttaja_id AND B.id=Y.kayttaja_id AND X.ryhma_id=Y.ryhma_id AND B.tunnus='uolevi');
Hae sanat järjestettynä niin, että kirjainkoolla ei ole merkitystä. Jokainen sana muodostuu kirjaimista a–z ja A–Z.
Taulut
Sanatid | sana |
---|
1 | Liisa | 2 | Maija | 3 | Uolevi | 4 | apina | 5 | omena |
|
Haluttu tulos
apina |
Liisa |
Maija |
omena |
Uolevi |
SELECT sana FROM Sanat ORDER BY LOWER(sana);
SELECT sana FROM Sanat ORDER BY LOWER(sana);
Hae tuote, jonka hinta on halvin (jos halvimpia tuotteita on useita, valitse aakkosjärjestyksessä ensimmäinen).
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 7 | 2 | lanttu | 5 | 3 | retiisi | 8 | 4 | nauris | 5 |
|
Haluttu tulos
SELECT Tuotteet.nimi, Tuotteet.hinta
FROM Tuotteet
WHERE Tuotteet.hinta =
(SELECT MIN
(Tuotteet.hinta)
FROM Tuotteet
GROUP BY hinta)
ORDER BY nimi
LIMIT 1;
SELECT nimi, hinta FROM Tuotteet ORDER BY hinta, nimi LIMIT 1;
Hae jokaisesta tuotteesta tieto, monenko tuotteen hinta eroaa enintään yhdellä (tässä lasketaan mukaan myös tuote itse).
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 7 | 2 | lanttu | 4 | 3 | retiisi | 8 | 4 | nauris | 6 |
|
Haluttu tulos
selleri | 3 |
lanttu | 1 |
retiisi | 2 |
nauris | 2 |
SELECT Tuotteet.nimi, COUNT(*)
FROM Tuotteet, Tuotteet t3
WHERE Tuotteet.id IN (SELECT t2.id
FROM Tuotteet t2 WHERE ABS(Tuotteet.hinta-t3.hinta) <=1)
GROUP BY Tuotteet.nimi;
SELECT A.nimi, COUNT(*) FROM Tuotteet A, Tuotteet B WHERE ABS(A.hinta-B.hinta) <= 1 GROUP BY A.id;
Laske, monellako tavalla voit valita kaksi tuotetta niin, että yhteishinta on tasan 10.
Huom! Yhdistelmässä voi olla kaksi samaa tuotetta ja halutaan laskea erilaiset yhdistelmät. Esimerkissä yhdistelmät ovat selleri+selleri ja lanttu+nauris (eli nauris+lanttu ei ole mukana).
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 5 | 2 | lanttu | 3 | 3 | retiisi | 8 | 4 | nauris | 7 |
|
Haluttu tulos
SELECT COUNT(n1)
FROM
(
SELECT t1.nimi n1, t2.nimi n2
FROM Tuotteet t1, Tuotteet t2
WHERE t1.hinta + t2.hinta == 10
AND t1.nimi <= t2.nimi
);
SELECT COUNT(*) FROM Tuotteet A, Tuotteet B WHERE A.hinta+B.hinta=10 AND A.id <= B.id;
Laske, mikä on pienin ero kahden tuotteen hinnassa.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 5 | 2 | lanttu | 3 | 3 | retiisi | 8 | 4 | nauris | 7 |
|
Haluttu tulos
SELECT MIN(ABS(hinta1 - hinta2))
FROM (SELECT t1.id AS id1, t2.id AS id2, t1.hinta AS hinta1, t2.hinta AS hinta2
FROM Tuotteet t1, Tuotteet t2
WHERE id1!=id2);
SELECT MIN(ABS(A.hinta-B.hinta)) FROM Tuotteet A, Tuotteet B WHERE A.id<>B.id;
Laske jokaisen tilin saldo tapahtumien perusteella (jokaisen tilin saldo on aluksi 0).
Taulut
Tilitid | haltija |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tapahtumatid | tili_id | muutos |
---|
1 | 1 | 500 | 2 | 2 | 300 | 3 | 1 | -100 | 4 | 2 | 100 | 5 | 2 | -300 |
|
Haluttu tulos
Uolevi | 400 |
Maija | 100 |
Kaaleppi | 0 |
SELECT haltija, COALESCE(tilisumma, 0) FROM (SELECT Tilit.haltija, tilisumma FROM (Tilit LEFT JOIN (SELECT t1.tili_id AS tili1, SUM(t1.muutos) AS tilisumma FROM Tapahtumat t1 GROUP BY t1.tili_id) ON Tilit.id = tili1) GROUP BY Tilit.id);
SELECT A.haltija, IFNULL(SUM(B.muutos),0) FROM Tilit A LEFT JOIN Tapahtumat B ON A.id=B.tili_id GROUP BY A.id;
Laske Uolevin tilin saldon historia. Tapahtumat ovat järjestyksessä id:n mukaisesti.
SELECT SUM(Tapahmtos)
OVER ( ORDER BY TapahID )
FROM (SELECT Tapahtumat.id AS tapahID, Tapahtumat.muutos AS Tapahmtos
FROM Tapahtumat, Tilit
WHERE Tilit.id = Tapahtumat.tili_id
AND Tilit.haltija = 'Uolevi');
SELECT SUM(B.muutos) FROM Tilit T, Tapahtumat A, Tapahtumat B WHERE A.tili_id=T.id AND B.tili_id=T.id AND T.haltija="Uolevi" AND B.id<=A.id GROUP BY A.id;
Laske jokaisen tilin suurin saldo historian aikana (jokaisen tilin saldo on aluksi 0).
Taulut
Tilitid | haltija |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tapahtumatid | tili_id | muutos |
---|
1 | 1 | 500 | 2 | 2 | 300 | 3 | 1 | -100 | 4 | 2 | 100 | 5 | 2 | -300 |
|
Haluttu tulos
Uolevi | 500 |
Maija | 400 |
Kaaleppi | 0 |
SELECT haltija, MAX(tili) FROM (SELECT Tilit.haltija haltija, COALESCE(SUM(taph2.muutos),0) tili
FROM Tilit LEFT JOIN Tapahtumat taph1 ON Tilit.id = taph1.tili_id
LEFT JOIN Tapahtumat taph2 ON taph2.id <= taph1.id AND Tilit.id = taph2.tili_id GROUP BY taph1.id, haltija ORDER BY tili DESC) GROUP BY haltija ORDER BY tili DESC;
SELECT haltija, IFNULL((SELECT MAX((SELECT SUM(muutos) FROM Tapahtumat WHERE tili_id=B.id AND id <= A.id)) FROM Tapahtumat A),0) FROM Tilit B;
Laske, montako eri tehtävää kukin opiskelija on ratkaissut oikein (lähetyksen tila on 0 = väärin tai 1 = oikein).
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tehtavat | | Lahetyksetid | opiskelija_id | tehtava_id | tila |
---|
1 | 1 | 1 | 0 | 2 | 1 | 1 | 0 | 3 | 2 | 1 | 1 | 4 | 1 | 2 | 0 | 5 | 1 | 1 | 1 | 6 | 2 | 2 | 1 | 7 | 2 | 3 | 0 | 8 | 1 | 2 | 0 | 9 | 1 | 2 | 1 | 10 | 2 | 2 | 1 | 11 | 2 | 2 | 1 |
|
Haluttu tulos
SELECT Opiskelijat.nimi, COUNT(DISTINCT Lahetykset.tehtava_id)
FROM Opiskelijat LEFT JOIN Lahetykset ON (Opiskelijat.id = Lahetykset.opiskelija_id
AND Lahetykset.tila=1) GROUP BY Opiskelijat.id;
SELECT O.nimi, COUNT(DISTINCT L.tehtava_id) FROM Opiskelijat O LEFT JOIN Lahetykset L ON O.id=L.opiskelija_id AND L.tila=1 GROUP BY O.id;
Laske jokaiselle opiskelijalle, montako lähetystä enimmillään hän on lähettänyt samaan tehtävään.
Taulut
Opiskelijatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tehtavat | | Lahetyksetid | opiskelija_id | tehtava_id | tila |
---|
1 | 1 | 1 | 0 | 2 | 2 | 1 | 1 | 3 | 1 | 2 | 0 | 4 | 1 | 1 | 1 | 5 | 2 | 2 | 1 | 6 | 2 | 3 | 0 | 7 | 1 | 2 | 0 | 8 | 2 | 2 | 1 | 9 | 2 | 2 | 1 |
|
Haluttu tulos
SELECT Opiskelijat.nimi, COALESCE((SELECT COUNT(Lahetykset.tehtava_id) tulos FROM Lahetykset, Tehtavat WHERE
Lahetykset.opiskelija_id = Opiskelijat.id AND Lahetykset.tehtava_id = Tehtavat.id GROUP BY Lahetykset.tehtava_id ORDER BY tulos DESC), 0) FROM Opiskelijat;
SELECT nimi, IFNULL((SELECT MAX(maara) FROM (SELECT COUNT(*) maara FROM Lahetykset WHERE opiskelija_id=O.id GROUP BY tehtava_id)),0) FROM Opiskelijat O;
Laske tulosten moodi (eli yleisin tulos). Jos vaihtoehtoja on useita, valitse niistä pienin.
Taulut
Haluttu tulos
SELECT tulos
FROM Tulokset
GROUP BY Tulokset.tulos
ORDER BY COUNT(*) DESC, tulos ASC LIMIT 1;
SELECT tulos FROM Tulokset GROUP BY tulos ORDER BY COUNT(*) DESC, tulos LIMIT 1;
Laske tulosten mediaani (eli keskimmäinen tulos, kun tulokset on järjestetty pienimmästä suurimpaan). Voit olettaa, että tulosten määrä on pariton.
Taulut
Haluttu tulos
SELECT Tulokset.tulos FROM Tulokset ORDER BY tulos LIMIT 1
OFFSET (SELECT COUNT(*) FROM Tulokset) / 2;
SELECT tulos FROM Tulokset ORDER BY tulos LIMIT 1 OFFSET (SELECT COUNT(*)/2 FROM Tulokset);
Laske tulosten mediaani (eli keskimmäinen tulos, kun tulokset on järjestetty pienimmästä suurimpaan). Jos tulosten määrä on parillinen, tulosta keskikohdan vasemmalla puolella oleva tulos.
Taulut
Haluttu tulos
SELECT x.tulos FROM (SELECT tulos, COUNT(1) OVER (partition BY 'A') AS TotalRows, Row_number()
OVER (ORDER BY Tulos aSC) AS AmountOrder FROM Tulokset ft) x
WHERE x.AmountOrder = ROUND(x.TotalRows / 2.0, 0);
SELECT tulos FROM Tulokset ORDER BY tulos LIMIT 1 OFFSET (SELECT (COUNT(*)-1)/2 FROM Tulokset);
Ilmoita jokaisesta junan vaunusta, montako matkustajaa siellä on.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
vaunu1 | 2 |
vaunu2 | 1 |
vaunu3 | 0 |
vaunu4 | 3 |
SELECT Vaunut.nimi,
(
SELECT COUNT(Matkustajat.vaunu_id)
FROM Matkustajat
WHERE Matkustajat.vaunu_id = Vaunut.id
)
FROM Vaunut;
SELECT V.nimi, COUNT(M.id) FROM Vaunut V LEFT JOIN Matkustajat M ON V.id=M.vaunu_id GROUP BY V.id;
Ilmoita jokaisesta junan vaunusta, montako tyhjää paikkaa siellä on.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
vaunu1 | 8 |
vaunu2 | 9 |
vaunu3 | 10 |
vaunu4 | 7 |
SELECT Vaunut.nimi, (Vaunut.paikat - (SELECT COUNT(Matkustajat.vaunu_id) FROM Matkustajat
WHERE Matkustajat.vaunu_id = Vaunut.id)) FROM Vaunut;
SELECT V.nimi, V.paikat-COUNT(M.id) FROM Vaunut V LEFT JOIN Matkustajat M ON V.id=M.vaunu_id GROUP BY V.id;
Laske, montako tyhjää paikkaa junassa on kaikkiaan.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
SELECT SUM(Vaunut.paikat - (SELECT COUNT(Matkustajat.vaunu_id) FROM Matkustajat
WHERE Matkustajat.vaunu_id = Vaunut.id)) FROM Vaunut;
SELECT (SELECT SUM(paikat) FROM vaunut)-(SELECT COUNT(*) FROM Matkustajat);
Hae jokaisesta matkustajasta tieto, montako muuta matkustajaa on samassa vaunussa.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
Uolevi | 1 |
Maija | 1 |
Kaaleppi | 0 |
Kotivalo | 2 |
Justiina | 2 |
Vihtori | 2 |
SELECT nimi, COUNT(n1) FROM Matkustajat LEFT JOIN (SELECT m1.nimi AS n1, m2.nimi AS n2
FROM Matkustajat m1, Matkustajat m2 WHERE (m1.vaunu_id=m2.vaunu_id AND m1.nimi != m2.nimi)) ON nimi=n1 GROUP BY n1 ORDER BY id;
SELECT A.nimi, COUNT(*)-1 FROM Matkustajat A, Matkustajat B WHERE A.vaunu_id=B.vaunu_id GROUP BY A.id;
Hae kaikki matkustajat, jotka ovat yksin vaunussaan.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
SELECT A.nimi FROM Matkustajat A, Matkustajat B WHERE A.vaunu_id=B.vaunu_id GROUP BY A.id HAVING COUNT(*)-1 = 0;
SELECT A.nimi FROM Matkustajat A, Matkustajat B WHERE A.vaunu_id=B.vaunu_id GROUP BY A.id HAVING COUNT(*)=1;
Hae kaikki vaunut, joissa ei ole yhtään matkustajaa.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
SELECT Vaunut.nimi FROM Vaunut WHERE((SELECT COUNT(*) FROM Matkustajat
WHERE Vaunut.id = Matkustajat.vaunu_id) == 0);
SELECT V.nimi FROM Vaunut V LEFT JOIN Matkustajat M ON V.id=M.vaunu_id GROUP BY V.id HAVING COUNT(M.id)=0;
Laske, monellako tavalla voidaan valita kaksi matkustajaa, jotka ovat samassa vaunussa.
Taulut
Vaunutid | nimi | paikat |
---|
1 | vaunu1 | 10 | 2 | vaunu2 | 10 | 3 | vaunu3 | 10 | 4 | vaunu4 | 10 |
| | Matkustajatid | nimi | vaunu_id |
---|
1 | Uolevi | 1 | 2 | Maija | 1 | 3 | Kaaleppi | 2 | 4 | Kotivalo | 4 | 5 | Justiina | 4 | 6 | Vihtori | 4 |
|
Haluttu tulos
SELECT COUNT(*)/2 FROM (SELECT M1.nimi, M2.nimi FROM Matkustajat M1, Matkustajat
M2 WHERE M1.vaunu_id = M2.vaunu_id AND M1.nimi != M2.nimi);
SELECT COUNT(*) FROM Matkustajat A, Matkustajat B WHERE A.id<B.id AND A.vaunu_id=B.vaunu_id;
Hae jokaisesta paketista tuotteiden määrä ja eri tuotteiden määrä.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 7 | 2 | lanttu | 3 | 3 | retiisi | 5 | 4 | nauris | 6 |
| | Paketitid | nimi | hinta |
---|
1 | Mummon herkut | 10 | 2 | Kolmikko | 14 |
| | Sisallotpaketti_id | tuote_id |
---|
1 | 1 | 1 | 4 | 2 | 3 | 2 | 3 | 2 | 3 |
|
Haluttu tulos
Mummon herkut | 2 | 2 |
Kolmikko | 3 | 1 |
SELECT asetelma.nimi, COUNT(asetelma.tuote_id), COUNT(DISTINCT asetelma.tuote_id)
FROM (Paketit
LEFT JOIN Sisallot
ON Paketit.id = Sisallot.paketti_id) asetelma
GROUP BY asetelma.nimi;
SELECT P.nimi, COUNT(S.tuote_id), COUNT(DISTINCT S.tuote_id) FROM Paketit P LEFT JOIN Sisallot S ON P.id=S.paketti_id GROUP BY P.id;
Hae jokaisesta tuotteesta tieto, montako kertaa se esiintyy enimmillään samassa paketissa.
Taulut
Tuotteetid | nimi | hinta |
---|
1 | selleri | 7 | 2 | lanttu | 3 | 3 | retiisi | 5 | 4 | nauris | 6 |
| | Paketitid | nimi | hinta |
---|
1 | Mummon herkut | 10 | 2 | Papan herkut | 10 |
| | Sisallotpaketti_id | tuote_id |
---|
1 | 1 | 1 | 4 | 2 | 3 | 2 | 3 | 2 | 4 |
|
Haluttu tulos
selleri | 1 |
lanttu | 0 |
retiisi | 2 |
nauris | 1 |
SELECT Tuotteet.nimi, COALESCE((SELECT COUNT(*) tulos FROM Sisallot, Paketit WHERE
Sisallot.paketti_id = Paketit.id AND Sisallot.tuote_id = Tuotteet.id GROUP BY Sisallot.paketti_id ORDER BY Sisallot.paketti_id DESC), 0) FROM Tuotteet;
SELECT nimi, IFNULL((SELECT MAX(maara) FROM (SELECT COUNT(*) maara FROM Sisallot WHERE tuote_id=T.id GROUP BY paketti_id)),0) FROM Tuotteet T;
Muodosta tuloslista, jossa on sijaluku, pelaajan nimi ja paras tulos. Jos kahdella pelaajalla on sama tulos, nimet järjestetään aakkosjärjestykseen. Jokaisella pelaajalla on eri nimi ja ainakin yksi tulos.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Kaaleppi |
| | Tuloksetid | pelaaja_id | tulos |
---|
1 | 1 | 100 | 2 | 1 | 350 | 3 | 2 | 300 | 4 | 2 | 350 | 5 | 3 | 500 |
|
Haluttu tulos
1 | Kaaleppi | 500 |
2 | Maija | 350 |
3 | Uolevi | 350 |
SELECT RANK() OVER (ORDER BY Pelaajat.nimi ASC), Pelaajat.nimi, MAX(tulos) FROM Tulokset, Pelaajat WHERE pelaaja_id=Pelaajat.id GROUP BY Pelaajat.id;
SELECT ROW_NUMBER() OVER (ORDER BY MAX(T.tulos) DESC, P.nimi), P.nimi, MAX(T.tulos) FROM Pelaajat P, Tulokset T WHERE P.id=T.pelaaja_id GROUP BY P.id;
Pelaajat jaetaan joukkueisiin niin, että aakkosjärjestyksessä joka toinen pelaaja kuuluu joukkueeseen 1 ja 2. Ilmoita joukkuejako annetuille pelaajille.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Liisa | 4 | Kaaleppi |
|
Haluttu tulos
Kaaleppi | 1 |
Liisa | 2 |
Maija | 1 |
Uolevi | 2 |
SELECT nimi, ((ROW_NUMBER() OVER (ORDER BY nimi)) - 1) % 2 +1 AS rivi FROM Pelaajat ORDER BY nimi;
SELECT nimi, 2-(ROW_NUMBER() OVER (ORDER BY nimi))%2 FROM Pelaajat;
Pelaajat jaetaan joukkueisiin niin, että aakkosjärjestyksessä joka toinen pelaaja kuuluu joukkueeseen "Puput" ja "Kilit". Ilmoita joukkuejako annetuille pelaajille.
Taulut
Pelaajatid | nimi |
---|
1 | Uolevi | 2 | Maija | 3 | Liisa | 4 | Kaaleppi |
|
Haluttu tulos
Kaaleppi | Puput |
Liisa | Kilit |
Maija | Puput |
Uolevi | Kilit |
SELECT nimi, CASE ((ROW_NUMBER() OVER (ORDER BY nimi)) - 1) % 2 +1 WHEN 1 THEN 'Puput' WHEN 2 THEN 'Kilit' END FROM Pelaajat ORDER BY nimi;
SELECT nimi, CASE WHEN (ROW_NUMBER() OVER (ORDER BY nimi))%2=1 THEN 'Puput' ELSE 'Kilit' END FROM Pelaajat;