Query annidate: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m tag source deprecati, replaced: <source lang= → <syntaxhighlight lang= (4), </source> → </syntaxhighlight> (4) |
||
Riga 7:
Esempio di una '''subquery''' che restituisce un solo valore:
<
select *
from Dipendenti
where età>(Select AVG(età)
from Dipendenti)
</syntaxhighlight>
La [[query]] restituisce tutti i ''Dipendenti'' la cui età supera l'età media di tutti i dipendenti. Il compito di andare a calcolare questa media è svolto dalla [[query]] interna (subquery), però si suppone di avere un [[database]] con all'interno la tabella ''Dipendenti'' con i relativi attributi o campi.
Riga 18:
Esempio di una '''subquery''' che restituisce un insieme di valori:
<
select *
from Studenti
where matricola Not in (Select DISTINCT rif_matricola from Esami)
</syntaxhighlight>
La [[query]] restituisce tutti gli ''Studenti'' che non hanno mai sostenuto un esame, '''la subquery''' invece ricerca tutte le matricole degli '''Studenti''' che hanno sostenuto almeno un esame. La clausola '''Distinct''' permette di eliminare la ripetizione delle matricole degli ''Studenti'' che hanno sostenuto più di un esame.
Riga 40:
Esempio di una '''subquery''' con tabelle derivate:
<
select MAX(tot_salario)
from (select SUM(salario) as tot_salario
from Lavoratori
group by settore);
</syntaxhighlight>
Questa [[query]], tramite la '''subquery''' nella clausola '''From''' permette di estrapolare dalla tabella ''Lavoratori'' il salario più alto della somma dei salari tra tutti i settori.
Riga 54:
Esempio di una [[query]] a campi incrociati:
<
Transform COUNT(*)
select classe
Riga 60:
group by classe
</syntaxhighlight>
Questa [[query]] a campi incrociati permette di contare per ogni classe il numero di ''studenti'' e il numero di ''studentesse''.
|