|
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;
|
|