Skill Factory
Lista post > Ricominciamo ... dal linguaggio SQL Lezione 11
Ricominciamo ... dal linguaggio SQL Lezione 11
                        
                         Gino  Visciano |
                        
                        Gino  Visciano |
					    
                         Skill Factory - 25/04/2016 22:59:46 | in Tutorials
                        
                        Skill Factory - 25/04/2016 22:59:46 | in Tutorials
                        
                    
 Benvenuti all'undicesima lezione, in questa nuova lezione vedrete le funzioni statistiche del comando Select.
Benvenuti all'undicesima lezione, in questa nuova lezione vedrete le funzioni statistiche del comando Select.
Le funzioni statistiche sono molto utili perché forniscono informazioni di aggregazione rispetto a tutti i dati presenti nelle colonne numeriche indicate.
Le principali funzioni statistiche sono le seguenti:
- SUM(NomeColonna) Somma i valori della colonna indicata, si può applicare solo a colonne numeriche;
- AVG(NomeColonna) Calcola la Media dei valori della colonna indicata, si può applicare solo a colonne numeriche;
- MIN(NomeColonna) Restituisce il valore Minimo della colonna indicata, si può applicare solo a colonne numeriche;
- MAX(NomeColonna) Restituisce il valore Massimo della colonna indicata, si può applicare solo a colonne numeriche;
- COUNT(NomeColonna) Si usa per contareil numero di righe della tabella, si può applicare a qualunque tipo di colonna, spesso si usa nella forma COUNT(*).
Ad esempio per conoscere il numero di dipendenti inserito nella tabella Dipendenti, su può usare il comando seguente:
Select count(*) from Dipendenti;
10
Per vedere praticamente come si usano le funzioni statistiche eseguite prima gli step seguenti, nel Database azienda:
STEP 1: Creare la tabella Clienti.
use azienda;
create table clienti (
id int auto_increment Primary Key,
nominativo varchar(100),
piva char(11) unique,
indirizzo varchar(100),
localita varchar(50),
provincia char(2));
 
STEP 2: Creare la tabella Fatture.
use azienda;
create table fatture (
id int auto_increment Primary Key,
num_fat varchar(20) unique,
data date,
id_cliente int,
imponibile decimal(9,2),
id_tipo_scadenza int);
use azienda;
create table tipo_scadenza (
id int auto_increment Primary Key,
tipo_scadenza varchar(100));
STEP 3: Inserimento Clienti.
use azienda;
insert into clienti (nominativo, localita, provincia) values ('Morgan & C.', 'Roma','RM');
insert into clienti (nominativo, localita, provincia) values ('Fiorini & Figli', 'Napoli','NA');
insert into clienti (nominativo, localita, provincia) values ('Aldebran', 'Milano','MI');
insert into clienti (nominativo, localita, provincia) values ('Cassandra', 'Roma','RM');
insert into clienti (nominativo, localita, provincia) values ('Pedretti', 'Napoli','NA');
insert into clienti (nominativo, localita, provincia) values ('Staiano', 'Milano','MI');
STEP 4: Inserimento Tipo_scadenza.
use azienda;
insert into tipo_scadenza (tipo_scadenza) values ('Rimessa diretta');
insert into tipo_scadenza (tipo_scadenza) values ('30 gg DF');
insert into tipo_scadenza (tipo_scadenza) values ('30 DFFM');
insert into tipo_scadenza (tipo_scadenza) values ('60 gg DF');
insert into tipo_scadenza (tipo_scadenza) values ('60 DFFM');
insert into tipo_scadenza (tipo_scadenza) values ('90 gg DF');
insert into tipo_scadenza (tipo_scadenza) values ('90 DFFM');
STEP 5: Inserimento Fatture.
use azienda;
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0001/16', '2016/01/15', 1,1000.00,2);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0002/16', '2016/01/15', 2,2000.00,2);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0003/16', '2016/01/15', 3,1500.00,3);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0004/16', '2016/01/15', 4,500.00,3);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0005/16', '2016/01/15', 5,1800.00,4);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0006/16', '2016/01/29', 6,800.00,5);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0007/16', '2016/02/29', 1,1500.00,2);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0008/16', '2016/02/29', 2,2100.00,2);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0009/16', '2016/02/29', 3,1800.00,3);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0010/16', '2016/02/29', 4,600.00,3);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0011/16', '2016/02/29', 5,1900.00,4);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0012/16', '2016/02/29', 6,900.00,5);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0013/16', '2016/03/31', 1,1900.00,2);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0014/16', '2016/03/31', 2,900.00,2);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0015/16', '2016/03/31', 3,800.00,3);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0016/16', '2016/03/31', 4,1600.00,3);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0017/16', '2016/03/31', 5,2000.00,4);
insert into fatture (num_fat, data, id_cliente, imponibile, id_tipo_scadenza) values ('0018/16', '2016/03/31', 6,1000.00,5);
Dopo che avete completato i 5 step,  potete  usare le tabelle create e popolate per vedere come si usano le funzioni statistiche del comando Select, di seguito vediamo alcuni esempi:
La query seguente mette in relazione tutte le tabelle create e ne visualizza il contenuto:
select fat.num_fat, fat.data, cli.nominativo, fat.imponibile, ts.tipo_scadenza from fatture as fat join clienti as cli on(fat.id_cliente=cli.id) join tipo_scadenza as ts on(fat.id_tipo_scadenza=ts.id) order by cli.nominativo;
| num_fat | data | nominativo | imponibile | tipo_scadenza | 
| 0015/16 | 2016-03-31 | Aldebran | 800.00 | 30 DFFM | 
| 0009/16 | 2016-02-29 | Aldebran | 1800.00 | 30 DFFM | 
| 0003/16 | 2016-01-15 | Aldebran | 1500.00 | 30 DFFM | 
| 0016/16 | 2016-03-31 | Cassandra | 1600.00 | 30 DFFM | 
| 0010/16 | 2016-02-29 | Cassandra | 600.00 | 30 DFFM | 
| 0004/16 | 2016-01-15 | Cassandra | 500.00 | 30 DFFM | 
| 0008/16 | 2016-02-29 | Fiorini & Figli | 2100.00 | 30 gg DF | 
| 0002/16 | 2016-01-15 | Fiorini & Figli | 2000.00 | 30 gg DF | 
| 0014/16 | 2016-03-31 | Fiorini & Figli | 900.00 | 30 gg DF | 
| 0013/16 | 2016-03-31 | Morgan & C. | 1900.00 | 30 gg DF | 
| 0007/16 | 2016-02-29 | Morgan & C. | 1500.00 | 30 gg DF | 
| 0001/16 | 2016-01-15 | Morgan & C. | 1000.00 | 30 gg DF | 
| 0017/16 | 2016-03-31 | Pedretti | 2000.00 | 60 gg DF | 
| 0011/16 | 2016-02-29 | Pedretti | 1900.00 | 60 gg DF | 
| 0005/16 | 2016-01-15 | Pedretti | 1800.00 | 60 gg DF | 
| 0018/16 | 2016-03-31 | Staiano | 1000.00 | 60 DFFM | 
| 0012/16 | 2016-02-29 | Staiano | 900.00 | 60 DFFM | 
| 0006/16 | 2016-01-29 | Staiano | 800.00 | 60 DFFM | 
Partendo da questa tabella, usando le funzioni statistiche, potete rispondere alle domande seguenti:
1) Quante fatture sono state inserite nella tabella fatture?
use azienda;
select count(*) from fatture;
18
2) Qual è il valore totale del fatturato inserito nella tabella fatture?
use azienda;
select sum(imponibile) from fatture;
24600.00
3) Qual è il valore medio del fatturato inserito nella tabella fatture?
use azienda;
select avg(imponibile) from fatture;
1366.66
4) Qual è il fatturato minimo inserito nella tabella fatture?
use azienda;
select min(imponibile) from fatture;
500.00
5) Qual è il fatturato massimo inserito nella tabella fatture?
use azienda;
select max(imponibile) from fatture;
2100.00
6) Quante fatture sono state inserite nella tabella fatture nel il mese di gennaio?
use azienda;
select count(*) from fatture where data>='2016-01-01' and data<='2016-01-31'; 
6
7) Qual è il fatturato totale inserito nella tabella fatture nel mese di gennaio?
use azienda;
select sum(imponibile) from fatture where data>='2016-01-01' and data<='2016-01-31'; 
7600.00
8) Qual è il fatturato totale del cliente Cassandra inserito nella tabella fatture?
use azienda;
select clienti.nominativo, sum(fatture.imponibile) from fatture  join clienti on (fatture.id_cliente=clienti.id) where clienti.nominativo='Cassandra';
Cassandra   2700.00
9) Qual è il fatturato totale dei clienti di Roma inserito nella tabella fatture?
use azienda;
select clienti.localita, sum(fatture.imponibile) from fatture join clienti on (fatture.id_cliente=clienti.id) where clienti.localita='Roma';
Roma  7100,00
10) Qual è il fatturato totale dei clienti di Roma inserito nella tabella fatture nel mese di gennaio?
use azienda;
select clienti.localita, sum(fatture.imponibile) from fatture join clienti on (fatture.id_cliente=clienti.id) where clienti.localita='Roma' and data>='2016-01-01' and data<='2016-01-31';
Roma  1500.00
<< Lezione precedente Lezione successiva >>
T U T O R I A L S S U G G E R I T I

 
        
 
         
             
             
                     
                     
                             
         Le Tue Aule
                Le Tue Aule
             I Tuoi Gruppi
                I Tuoi Gruppi
             Le Tue Selezioni
                Le Tue Selezioni
            



 Scheda Azienda
Scheda Azienda Blog
Blog Eventi formazione
Eventi formazione Offerta formativa
Offerta formativa Offerte di lavoro
Offerte di lavoro Lavora con noi
Lavora con noi Richiedi informazioni
                Richiedi informazioni
            