如何呈现聚合函数的特征(NULL)?

Mic*_*ell 5 sql database aggregate-functions

我正在寻找数据库的"教科书"示例来说明当涉及NULL值时聚合函数(Max,Min,Sum,Avg和Count)的显着特征.

我必须能够使用提到的数据库,在存在NULL的情况下讨论并说明/展示这些聚合函数的用法,其中包含示例查询及其答案.

非常感谢!

OMG*_*ies 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
Run Code Online (Sandbox Code Playgroud)

输出应该是:

max_test | min_test | sum_test | avg_test | count_test | count_star_test
-------------------------------------------------------------------------
3        | 1        | 6        | 2        | 3          | 4
Run Code Online (Sandbox Code Playgroud)

总之,如果您专门引用该列,则聚合函数将忽略 NULL。 COUNT是唯一支持的聚合函数*-COUNT(*)在这种情况下将包含 NULL。

  • 我要指出的是,当您使用 count(*) 而不是 count(Fieldname) 时,不会忽略 null (4认同)