- LAVORATORI(IDlavoratore, cognome, nome, salario, mansione, settoreID)
- SETTORI(IDsettore, descrizione)
LAVORATORI.settoreID è chiave esterna collegata a SETTORI.IDsettore
Query
- TEMP1: totale dei salari per settore
SELECT settoreID, Sum(salario) AS [Totale salari] FROM LAVORATORI GROUP BY settoreID
- TEMP2: salario massimo per settore
SELECT settoreID, Max(salario) AS [Salario massimo] FROM LAVORATORI GROUP BY settoreID
- TEMP3: salario medio per settore
SELECT settoreID, Avg(salario) AS [Salario medio] FROM LAVORATORI GROUP BY settoreID
- Massimo tra le somme dei salari per settore
SELECT Max([Totale salari]) FROM TEMP1
- Massimo tra le somme dei salari per settore, senza usare la query TEMP1
SELECT Max([Totale salari]) FROM (SELECT Sum(salario) AS [Totale salari] FROM LAVORATORI GROUP BY settoreID)
- 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.settoreID = TEMP2.settoreID WHERE LAVORATORI.salario = TEMP2.[Salario massimo] GROUP BY TEMP2.settoreID, TEMP2.[Salario massimo]
- oppure
SELECT TEMP2.settore, TEMP2.[Salario massimo], Count(*) AS [Numero lavoratori] FROM LAVORATORI, TEMP2 WHERE (LAVORATORI.settoreID = TEMP2.settoreID) AND (LAVORATORI.salario = TEMP2.[Salario massimo]) GROUP BY TEMP2.settoreID, TEMP2.[Salario massimo]
- oppure, senza usare la query TEMP2
SELECT TEMP2.settoreID, TEMP2.[Salario massimo], Count(*) AS [Numero lavoratori] FROM LAVORATORI, (SELECT settoreID, Max(salario) AS [Salario massimo] FROM LAVORATORI GROUP BY settoreID) AS TEMP2 WHERE (LAVORATORI.settoreID = TEMP2.settoreID) 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.IDsettore = TEMP3.settoreID WHERE [Salario medio] >= 1350
- oppure
SELECT SETTORI.*, [Salario medio] FROM SETTORI INNER JOIN (SELECT settoreID, Avg(salario) AS [Salario medio] FROM LAVORATORI GROUP BY settoreID) AS TEMP3 ON SETTORI.IDsettore = TEMP3.settoreID WHERE [Salario medio] >= 1350