|
Tratto da: AA. VV. SQL, il linguaggio per le
basi di dati - HOEPLI
Schema relazionaleLAVORATORI(IDlavoratore, cognome, nome, settore, salario, mansione) SETTORI(settore, descrizione) LAVORATORI.settore è chiave esterna collegata a SETTORI.settore QueryTotale dei salari per settore, TEMP1 SELECT settore, SUM(salario) as [Totale salari] FROM LAVORATORI GROUP BY settore; Salario massimo per settore, TEMP2 SELECT settore, MAX(salario) as [Salario massimo] FROM LAVORATORI GROUP BY settore; Salario medio per settore, TEMP3 SELECT settore, AVG(salario) as [Salario medio] FROM LAVORATORI GROUP BY settore; Massimo tra le somme dei salari per settore SELECT Max([Totale salari]) FROM TEMP1; Massimo tra le somme dei salari per settore, senza TEMP1 SELECT Max([Totale salari]) FROM (SELECT SUM(salario) AS [Totale salari] FROM LAVORATORI GROUP BY settore); Settore, salario massimo, quanti lavoratori con quel salario SELECT TEMP2.settore, TEMP2.[Salario massimo], COUNT(*) AS [Numero lavoratori] FROM LAVORATORI INNER JOIN TEMP2 ON LAVORATORI.settore = TEMP2.settore WHERE LAVORATORI.salario = TEMP2.[Salario massimo] GROUP BY TEMP2.settore, TEMP2.[Salario massimo]; oppure SELECT TEMP2.settore, TEMP2.[Salario massimo], COUNT(*) AS [Numero lavoratori] FROM LAVORATORI, TEMP2 WHERE (LAVORATORI.settore = TEMP2.settore) AND (LAVORATORI.salario = TEMP2.[Salario massimo]) GROUP BY TEMP2.settore, TEMP2.[Salario massimo]; oppure, senza TEMP2 SELECT TEMP2.settore, TEMP2.[Salario massimo], COUNT(*) AS [Numero lavoratori] FROM LAVORATORI, (SELECT settore, MAX(salario) as [Salario massimo] FROM LAVORATORI GROUP BY settore) AS TEMP2 WHERE (LAVORATORI.settore = TEMP2.settore) AND (LAVORATORI.salario = TEMP2.[Salario massimo]) GROUP BY TEMP2.settore, TEMP2.[Salario massimo]; I settori con salario medio di almeno 1350 € SELECT SETTORI.*, [Salario medio] FROM SETTORI INNER JOIN TEMP3 ON SETTORI.settore = TEMP3.settore WHERE [Salario medio] >= 1350; oppure SELECT SETTORI.*, [Salario medio] FROM SETTORI INNER JOIN (SELECT settore, AVG(salario) as [Salario medio] FROM LAVORATORI GROUP BY settore) AS TEMP3 ON SETTORI.settore = TEMP3.settore WHERE [Salario medio] >= 1350; |
|