当涉及 NULL 值时,我正在寻找数据库的“教科书”示例来说明聚合函数(Max、Min、Sum、Avg 和 Count)的显着特征。
我必须能够使用提到的数据库,通过示例查询及其答案来讨论和说明/展示这些聚合函数在存在 NULL 的情况下的用法。
非常感谢!
当涉及 NULL 值时,我正在寻找数据库的“教科书”示例来说明聚合函数(Max、Min、Sum、Avg 和 Count)的显着特征。
我必须能够使用提到的数据库,通过示例查询及其答案来讨论和说明/展示这些聚合函数在存在 NULL 的情况下的用法。
非常感谢!
利用:
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。
空值是未知的值。除计数函数外的所有聚合函数都忽略空值。
我以 korth 的数据库系统概念为例。这是一个讲师关系
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,music,null) 来说明空值的聚合函数。
select sum(salary) from instructor;
result 400000
select min(salary) from instructor;
result 60000
select count(*) from instructor;
result 6
类似的结果适用于 max 和 avg 函数。只有 count 函数考虑空值。