P. 1
SQL_m8 Funzioni Di Aggregazione e Ordinamenti

SQL_m8 Funzioni Di Aggregazione e Ordinamenti

|Views: 70|Likes:
Published by Cinzia Bocchi

More info:

Published by: Cinzia Bocchi on Dec 08, 2012
Copyright:Attribution Non-commercial Share Alike

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/25/2013

pdf

text

original

Funzioni di aggregazione e ordinamenti Funzioni di aggregazione

All’interno del comando SELECT si possono usare alcune funzioni predefinite dette funzioni di aggregazione. Vediamo quali sono e come possono essere utilizzate. Le tabelle seguenti saranno utilizzate per gli esempi.
IMPIEGATO

matr 101 102 103 201 202 301
DIPARTIMENTO

cogn Sili Rossi Neri Neri Verdi Bisi

stipendio 60 40 40 40 50 70

dipartimento No No No Su Su Is

codice No Su Is
PROGETTO

nome Nord Sud Isole

sede Milano Napoli Palermo

direttore 101 201 301

sigla Alpha Beta Gamma
PARTECIPAZIONE

nome Vendite Inventario Distribuzione

bilancio 50 30 18

responsabile 202 301 301

impiegato 101 101 103 103 201 202

progetto Alpha Beta Alpha Beta Beta Beta

Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

1

Funzione COUNT

La funzione COUNT conta il numero di righe presenti in una tabella. La funzione ha un unico argomento che può assumere come valore * (asterisco) o un attributo della tabella. SELECT FROM COUNT (*) tabella

Restituisce il numero di righe della tabella, comprese quelle con campi contenenti valori NULL. SELECT FROM COUNT (attributo) tabella

Restituisce il numero di righe della tabella, escluse quelle che nella colonna dell’attributo contengono valori NULL. Se si specifica anche una condizione, il conteggio è limitato alle sole righe che la soddisfano. SELECT FROM WHERE COUNT (attributo) tabella condizione

Esempio 1: Contare il numero di impiegati SELECT FROM Resultset:
COUNT(*) 6

COUNT (*) impiegato

Possiamo utilizzare AS per ridenominare la colonna. AS può essere utilizzato per tutte le funzioni di aggregazione. SELECT FROM Resultset:
numeroImpiegati 6

COUNT (*) AS numeroImpiegati impiegato

Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

2

Esempio 2: Contare il numero di impiegati con stipendio inferiore a 50 SELECT FROM WHERE Resultset:
COUNT(*) 3

COUNT (*) impiegato stipendio < 50

Esempio 3: Contare i cognomi distiniti degli impiegati SELECT FROM Resultset:
COUNT(*) 5

COUNT (DISTINCT cogn) impiegato

La clausola DISTINCT può essere utilizzata con tutte le funzioni di aggregazione. Funzione SUM

SUM restituisce la somma di tutti i valori (numerici) contenuti nella colonna passata come argomento. I campi contenenti valori NULL sono considerati come aventi valore 0. SELECT FROM SELECT FROM WHERE SUM (attributo) tabella SUM (attributo) tabella condizione

Se viene specificata una condizione con la clausola WHERE, la somma è calcolata solo per le righe che la soddisfano. L’argomento della funzione SUM può anche essere un’espressione numerica contenente attributi di tipo numerico. Esempio 1: Calcolare la somma dei bilanci di progetto SELECT FROM SUM (bilancio) progetto

Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

3

Resultset:
SUM(bilancio) 98

Esempio 2: Calcolare la somma dei bilanci di tutti i progetti, ad eccezione del progetto Alpha SELECT FROM WHERE Resultset:
SUM(bilancio) 48

SUM (bilancio) progetto sigla <> ‘Alpha’

Esempio 3: Calcolare la somma del 50% dei bilanci di progetto SELECT FROM Resultset:
SUM(bilancio*50/100) 49

SUM (bilancio*50/100) progetto

Funzione AVG

AVG (dall’inglese average) restituisce la media aritmetica di tutti i valori (numerici) contenuti nella colonna passata come argomento. I campi contenenti valori NULL non sono considerati nel calcolo. L’argomento della funzione AVG può essere un’espressione numerica contenente attributi di tipo numerico. SELECT FROM SELECT FROM WHERE AVG (attributo) tabella AVG (attributo) tabella condizione

Se viene specificata una condizione con la clausola WHERE, la media è calcolata solo per le righe che la soddisfano.

Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

4

Esempio 1: Calcolare la media degli stipendi degli impiegati SELECT FROM Resultset:
AVG(stipendio) 50

AVG (stipendio) impiegato

Funzioni MIN e MAX

MIN e MAX restituiscono rispettivamente il valore minimo e il valore massimo tra i valori della colonna di una tabella passata come argomento. L’argomento può essere un’espressione. Nel caso sia specificata la clausola WHERE vengono considerate solo le righe che soddisfano la condizione. Le due funzioni sono applicabili tanto a valori numerici quanto a valori letterali (l’ordinamento è quello alfabetico). Analogamente a SUM e a AVG i campi con valore NULL sono ignorati. SELECT FROM SELECT FROM WHERE MIN (attributo) tabella MIN (attributo) tabella condizione

Idem per MAX. Esempio 1: Determinare gli stipendi minimo e massimo degli impiegati SELECT FROM Resultset:
stipMinimo 40 stipMassimo 70

MIN (stipendio) AS stipMinimo, MAX (stipendio) AS stipMassimo impiegato

Esempio 2: Determinare il primo cognome, in ordine alfabetico, degli impiegati SELECT FROM MIN (cogn) impiegato

Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

5

Resultset:
MIN(cognome) Bisi

Osservazione sulle funzioni di aggregazione

Le funzioni di aggregazione possono essere utilizzate in una espressione ma non possono essere nidificate. Per esempio, è corretto scrivere: AVG(attributo) *10 mentre non è consentito scrivere: AVG(SUM(attributo))

Ordinamenti
Nel comando SELECT si può inserire la clausola ORDER BY per ordinare i risultati di una interrogazione. L’ordinamento può essere crescente (ASC) o decrescente (DESC). Per default l’ordinamento è crescente e di conseguenza non è necessario specificarlo utilizzando la parola chiave ASC. L’ordinamento viene fatto su uno o più attributi tra quelli specificati accanto alla parola SELECT (gli attributi su cui si fa una proiezione). La clausola ORDER BY è l’ultimo elemento di un comando SQL. SELECT FROM WHERE ORDER BY lista attributi tabella condizione lista attributi

Esempio 1: Determinare i cognomi degli impiegati in ordine alfabetico crescente SELECT FROM ORDER BY Resultset:
cogn Bisi Neri Rossi Sili Verdi
Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

DISTINCT cogn impiegato cogn

6

Esempio 2: Determinare i cognomi degli impiegati in ordine alfabetico decrescente SELECT FROM ORDER BY Resultset:
cogn Verdi Sili Rossi Neri Bisi

DISTINCT cogn impiegato cogn DESC;

Esempio 3: Determinare i nomi e le sedi dei dipartimenti in ordine alfabetico crescente SELECT FROM ORDER BY nome, sede dipartimento nome, sede

In questo caso l’ordinamento viene effettuato sul primo campo specificato nella clausola ORDER BY; a parità di nome si procede con l’ordinamento sul secondo campo e così via. Resultset:
nome Nord Isole Sud sede Milano Palermo Napoli

Quest'opera è stata rilasciata con licenza Creative Commons Attribution-ShareAlike 3.0 Unported. Per leggere una copia della licenza visita il sito web http://creativecommons.org/licenses/by-sa/3.0/ o spedisci una lettera a Creative Commons, 171 Second Street, Suite 300, San Francisco, California, 94105, USA.
Bocchi Cinzia Ultimo aggiornamento: 05/12/2012

7

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->