2010-03-02 4 views
5

Je cherche un exemple de base de données 'manuel' pour illustrer les principales caractéristiques des fonctions agrégées (Max, Min, Sum, Avg et Count) lorsque des valeurs NULL sont impliquées.Comment présenter les caractéristiques des fonctions d'agrégat (NULL)?

Je dois pouvoir discuter et illustrer/présenter l'utilisation de ces fonctions d'agrégats en présence de NULL avec des exemples de requêtes et leurs réponses, en utilisant la base de données mentionnée.

Merci beaucoup!

Répondre

2

Utilisation:

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 

sortie doit être:

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

En résumé, NULL est ignorée par les fonctions d'agrégation si vous faites référence à la colonne spécifique. COUNT est la seule fonction agrégée qui prend en charge * - COUNT(*) inclura NULL dans ce cas.

+4

Je signalerai que null n'est pas ignoré lorsque vous utilisez count (*) au lieu de count (Fieldname) – HLGEM

+0

@HLGEM: Bon point, mis à jour. –

0

Les valeurs nulles sont la valeur inconnue. Toutes les fonctions d'agrégat à l'exception de la fonction count ignorent la valeur null.

j'ai pris exemple concepts de système de base de données de formulaire par korth.Here est une relation d'instructeur

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 

I ont ignoré quelques tuples et inséré un nouveau tuple (12131, Jake, musique, null) pour illustrer fonction d'agrégation sur des valeurs nulles.

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

résultat similaire est valable pour max et moyenne function.Only la fonction de comptage prend en compte des valeurs nulles.

Questions connexes