# # script per la creazione della tabella Dipendenti2 # (i contenuti ovviamente non sono inseriti nella sola creazione) # CREATE TABLE Dipendenti2 ( Id_Dipendente INTEGER PRIMARY KEY, Nome VARCHAR(40) NOT NULL, Cognome VARCHAR(40) NOT NULL, Mansione VARCHAR(40), Stipendio INTEGER, Sesso ENUM('M','F') ); +---------------+---------+---------+-----------+-----------+--------+ | Id_Dipendente | Nome | Cognome | Mansione | Stipendio | Sesso | +---------------+---------+---------+-----------+-----------+--------+ | 1 | Mario | Bianchi | Operaio | 1200 | M | | 2 | Carlo | Rossi | Impiegato | 1250 | M | | 3 | Maria | Neri | Impiegato | 1050 | F | | 4 | Nello | Verdi | Dirigente | 1800 | M | | 5 | Aldo | Grigi | Impiegato | 1320 | M | | 6 | Ottavia | Bruni | Dirigente | 2100 | F | | 7 | Nadia | Gialli | Operaio | 950 | F | | 8 | Valeria | Rosi | Operaio | 950 | F | | 9 | Romolo | Fucsia | Operaio | 990 | M | | 10 | Alfio | Blu | Operaio | 990 | M | +---------------+---------+---------+-----------+-----------+--------+ # Elenco delle mansioni dei dipendenti SELECT Mansione FROM Dipendenti2 GROUP BY Mansione +-----------+ | Mansione | +-----------+ | Dirigente | | Impiegato | | Operaio | +-----------+ # contare i dipendenti per mansione SELECT Mansione, COUNT(*) AS NumeroPerMansione FROM Dipendenti2 GROUP BY Mansione +-----------+-------------------+ | Mansione | NumeroPerMansione | +-----------+-------------------+ | Dirigente | 2 | | Impiegato | 3 | | Operaio | 5 | +-----------+-------------------+ # Ordinare le mansioni per numero di dipendenti in esse (iniziando dalle pił numerose) SELECT Mansione, COUNT(*) AS NumeroPerMansione FROM Dipendenti2 GROUP BY Mansione ORDER BY NumeroPerMansione DESC +-----------+-------------------+ | Mansione | NumeroPerMansione | +-----------+-------------------+ | Operaio | 5 | | Impiegato | 3 | | Dirigente | 2 | +-----------+-------------------+ # Somma di tutti gli stipendi da pagare al mese dall'azienda SELECT SUM(Stipendio) AS TotaleMensile FROM Dipendenti2 12600 # Cifre degli stipendi totali mensili scorporati per mansione SELECT Mansione, SUM(Stipendio) AS TotaleMensile FROM Dipendenti2 GROUP BY Mansione +-----------+---------------+ | Mansione | TotaleMensile | +-----------+---------------+ | Dirigente | 3900 | | Impiegato | 3620 | | Operaio | 5080 | +-----------+---------------+ # Stipendi scorporati per mansione ordinati per maggior entitą SELECT Mansione, SUM(Stipendio) AS TotaleMensile FROM Dipendenti2 GROUP BY Mansione ORDER BY TotaleMensile DESC +-----------+---------------+ | Mansione | TotaleMensile | +-----------+---------------+ | Operaio | 5080 | | Dirigente | 3900 | | Impiegato | 3620 | +-----------+---------------+ # Ragruppare per mansione gli stipendi che risultano inferiori a 1100 euro SELECT Mansione, SUM(Stipendio) AS TotaleMensile FROM Dipendenti2 WHERE Stipendio < 1100 GROUP BY Mansione ORDER BY TotaleMensile DESC +-----------+---------------+ | Mansione | TotaleMensile | +-----------+---------------+ | Operaio | 3880 | | Impiegato | 1050 | +-----------+---------------+ # Contare il numero dei dipendenti impegnati nelle varie mansioni SELECT Mansione, COUNT(*) AS NumeroxMansione FROM Dipendenti2 GROUP BY Mansione +-----------+-----------------+ | Mansione | NumeroxMansione | +-----------+-----------------+ | Dirigente | 2 | | Impiegato | 3 | | Operaio | 5 | +-----------+-----------------+ # Individuare quale gruppo (mansione) ha il numero pił alto di dipendenti SELECT MAX(NumeroxMansione) FROM (SELECT Mansione, COUNT(*) AS NumeroxMansione FROM Dipendenti2 GROUP BY Mansione) AS T1 5 # contare i dipendenti maschi e femmine SELECT Sesso, COUNT(*) AS Maschi_Femmine FROM Dipendenti2 GROUP BY Sesso +--------+----------------+ | Sesso | Maschi_Femmine | +--------+----------------+ | M | 6 | | F | 4 | +--------+----------------+ # Individuare la media degli stipendi SELECT AVG(Stipendio) FROM Dipendenti2 1260.0000 # Individuare tutti i dipendenti che hanno stipendio che supera la media SELECT Nome, Cognome, Stipendio FROM Dipendenti2 WHERE Stipendio > (SELECT AVG(Stipendio) FROM Dipendenti2) +---------+---------+-----------+ | Nome | Cognome | Stipendio | +---------+---------+-----------+ | Nello | Verdi | 1800 | | Aldo | Grigi | 1320 | | Ottavia | Bruni | 2100 | +---------+---------+-----------+ # Individuare il numero di dipendenti che hanno stipendio che supera la media raggruppati per mansione SELECT Mansione, COUNT(*) AS NumeroDipendenti FROM Dipendenti2 WHERE Stipendio > (SELECT AVG(Stipendio) FROM Dipendenti2 ) GROUP BY Mansione +-----------+------------------+ | Mansione | NumeroDipendenti | +-----------+------------------+ | Dirigente | 2 | | Impiegato | 1 | +-----------+------------------+ # Individuare il/i dipendente/i con massimo stipendio SELECT Nome, Cognome, Mansione, Stipendio FROM Dipendenti2 WHERE Stipendio = (SELECT MAX(Stipendio) FROM Dipendenti2) +---------+---------+-----------+-----------+ | Nome | Cognome | Mansione | Stipendio | +---------+---------+-----------+-----------+ | Ottavia | Bruni | Dirigente | 2100 | +---------+---------+-----------+-----------+