2010-03-02 3 views
5

Я ищу пример базы данных «учебник», чтобы проиллюстрировать основные функции агрегатных функций (Max, Min, Sum, Avg и Count), когда задействованы значения NULL.Как представить функции агрегатных функций (NULL)?

Я должен быть в состоянии обсудить и проиллюстрировать/представить использование этих функций агрегатов при наличии NULL с примерными запросами и их ответами, используя указанную базу данных.

Большое спасибо!

ответ

2

Использование:

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 

Вывод должен быть:

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

В целом, NULL игнорируется агрегатные функции, если вы ссылаетесь на столбец конкретно. COUNT - единственная функция агрегата, которая поддерживает * - COUNT(*) будет включать в этом случае NULL.

+4

Я укажу, что null не игнорируется при использовании count (*) вместо count (Имя поля) – HLGEM

+0

@HLGEM: Хорошая точка, обновлена. –

0

Нулевые значения - это значение, которое неизвестно. Все агрегированные функции, кроме функции count, игнорируют нулевое значение.

Я принял концепции системы пример формы базы данных с помощью korth.Here является инструктором отношение

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 

Я игнорировал несколько кортежей и вставляется новый кортеж (12131, Jake, музыка, нулевой), чтобы проиллюстрировать статистическую функцию по нулевым значениям.

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

Аналогичный результат выполняется для функции max и avg. Только функция count учитывает нулевые значения.

Смежные вопросы