2010-03-02 11 views
5

Sto cercando un esempio di database "da manuale" per illustrare le caratteristiche salienti delle funzioni di aggregazione (Max, Min, Sum, Avg e Count) quando sono coinvolti i valori NULL.Come presentare le funzionalità delle funzioni di aggregazione (NULL)?

Devo essere in grado di discutere e illustrare/presentare l'utilizzo di questa funzione di aggregati in presenza di valori NULL con query di esempio e relative risposte, utilizzando il database menzionato.

Grazie mille!

risposta

2

Usa:

SELECT MAX(t.num) AS max_test, 
     MIN(t.num) AS min_test, 
     SUM(t.num) AS sum_test, 
     AVG(t.num) AS avg_test, 
     COUNT(t.num) AS count_test, 
     COUNT(*) AS count_star_test 
    FROM (SELECT NULL AS num 
     UNION ALL 
     SELECT 1 
     UNION ALL 
     SELECT 2 
     UNION ALL 
     SELECT 3) t 

uscita dovrebbe essere:

max_test | min_test | sum_test | avg_test | count_test | count_star_test 
------------------------------------------------------------------------- 
3  | 1  | 6  | 2  | 3   | 4 

In sintesi, NULL viene ignorato da funzioni di aggregazione, se si fa riferimento la colonna particolare. COUNT è l'unica funzione di aggregazione che supporta * - COUNT(*) includerà NULL in questo caso.

+4

Indicheremo che null non viene ignorato quando si usa count (*) invece di count (Fieldname) – HLGEM

+0

@HLGEM: buon punto, aggiornato. –

0

I valori nulli sono il valore sconosciuto. Tutte le funzioni di aggregazione tranne la funzione di conteggio ignorano il valore nullo.

ho preso concetti sistema di database esempio modulo korth.Here è un rapporto istruttore

ID  name  dept  salary 
22222  Einstein Physics  95000 
12121  Wu   Finance  90000 
32343  El Said  History  60000 
45565  Katz  Comp. Sci. 75000 
98345  Kim Elec. Eng.  80000 
12131  jake  music  null 

ho ignorato alcune tuple e inserita una nuova tupla (12131, jake, musica, nullo) per illustrare funzione di aggregazione su valori nulli.

select sum(salary) from instructor; 
result 400000 
select min(salary) from instructor; 
result 60000 
select count(*) from instructor; 
result 6 

Un risultato simile vale per la funzione max e media. Solo la funzione di conteggio prende in considerazione valori nulli.

Problemi correlati