Skip to content

Instantly share code, notes, and snippets.

@VincenzoLaSpesa
Created August 26, 2022 20:42
Show Gist options
  • Select an option

  • Save VincenzoLaSpesa/8662ef063fa856c979d543e2ebb4f772 to your computer and use it in GitHub Desktop.

Select an option

Save VincenzoLaSpesa/8662ef063fa856c979d543e2ebb4f772 to your computer and use it in GitHub Desktop.
Varie query fatte ai tempi per preparare l'esame
--1 citta con un aereoporto di cui non si conosce il numero di piste
SELECT citta FROM esercizio.aeroporto WHERE numpiste=0;
--2 nazioni da cui parte e arriva il volo x
SELECT cittapart, cittaarr FROM esercizio.volo WHERE idvolo=2
--3 tipi di aerei che partono da torino
SELECT tipoaereo FROM esercizio.aereo WHERE tipoaereo IN(
SELECT tipoaereo FROM esercizio.volo WHERE cittapart='Torino'
);
--4 tipo aereo e numero passegeri per i voli che partono da Arcore
SELECT tipoaereo, numpasseggeri FROM esercizio.aereo WHERE tipoaereo IN(
SELECT tipoaereo FROM esercizio.volo WHERE cittapart='Arcore'
);
--5 citta da cui partono voli internazionali
SELECT part FROM
(
SELECT volo.cittapart AS part, volo.cittaarr AS arr, aeroporto.nazione AS nazpart, b.nazione AS nazarr
FROM esercizio.aeroporto,esercizio.volo
JOIN esercizio.aeroporto AS b ON (esercizio.volo.cittaarr=b.citta)
WHERE aeroporto.citta=volo.cittapart
) AS foo
WHERE nazpart != nazarr;
--6 citta da cui partono voli diretti a Arcore ordinate alfabeticamente (che stronzata)
SELECT cittapart FROM esercizio.volo WHERE cittaarr ='Arcore' ORDER BY cittapart;
--7 numero di voli internazionali che partono da Arcore il giovedì
-- ho creato una vista dalla query foo del 5
CREATE VIEW esercizio.internazinali AS
SELECT * FROM esercizio.volo WHERE idvolo IN
(SELECT idvolo FROM
(
SELECT volo.idvolo AS idvolo, volo.cittapart AS part, volo.cittaarr AS arr, aeroporto.nazione AS nazpart, b.nazione AS nazarr
FROM esercizio.aeroporto,esercizio.volo
JOIN esercizio.aeroporto AS b ON (esercizio.volo.cittaarr=b.citta)
WHERE aeroporto.citta=volo.cittapart
) AS foo
WHERE nazpart != nazarr);
-- ora la query
SELECT COUNT(*) FROM esercizio.internazinali WHERE giornosett=4 AND cittapart='Arcore';
--8 il numero di voli internazionali che partono dall italia
SELECT COUNT(*) FROM(
SELECT giornosett FROM esercizio.internazinali WHERE cittapart IN
(SELECT citta FROM esercizio.aeroporto WHERE nazione='Italia')
) AS foo;
--9 Città italiane da cui partono più di 2 voli diretti a Cuba
SELECT * FROM(
SELECT cittapart,COUNT(*) AS conto FROM esercizio.internazinali WHERE(
cittaarr IN (SELECT citta FROM esercizio.aeroporto WHERE nazione='Cuba')
AND
cittapart IN(SELECT citta FROM esercizio.aeroporto WHERE nazione='Italia')
)GROUP BY cittapart
)AS foo WHERE conto>2;
--10 Citta con soli voli interni
SELECT citta FROM esercizio.aeroporto WHERE
citta NOT IN(SELECT cittaarr FROM esercizio.internazinali)
AND
citta NOT IN(SELECT cittapart FROM esercizio.internazinali)
AND
nazione='Italia'
;
--11 Citta servite dall aereo con il massimo numero di passeggeri
SELECT cittaarr FROM esercizio.volo WHERE tipoaereo=
(SELECT tipoaereo FROM esercizio.aereo WHERE numpasseggeri=(SELECT MAX(numpasseggeri) FROM esercizio.aereo))
UNION
SELECT cittapart FROM esercizio.volo WHERE tipoaereo=
(SELECT tipoaereo FROM esercizio.aereo WHERE numpasseggeri=(SELECT MAX(numpasseggeri) FROM esercizio.aereo))
;
--12 Massimo numero di passeggeri che arrivano a Cuba dall Italia il Giovedì
SELECT SUM(numpasseggeri) AS sommatoria FROM esercizio.aereo WHERE tipoaereo IN(
SELECT tipoaereo FROM esercizio.volo WHERE(
cittaarr IN (SELECT citta FROM esercizio.aeroporto WHERE nazione='Cuba')
AND
cittapart IN(SELECT citta FROM esercizio.aeroporto WHERE nazione='Italia')
AND giornosett=4
));
--Vincenzo ven 14 apr 2006 13:07:23 CEST
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment