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

标签 sql database aggregate-functions

我正在寻找数据库的“教科书”示例,以说明涉及 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。

关于sql - 如何呈现聚合函数(NULL)的特征?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2366812/

相关文章:

mysql - 显式索引和隐式索引之间的区别?

mysql - 无法使用 MAMP 或社区服务器连接到 mysql 服务器

sql - 每天查询数周内有日期限制的计数

javascript - 在页面导航时更改 SQL 语句

sql - 如何创建查询以将列中的分割作为结果中的列?

SQL:分解数组

sql - Postgresql:如何在 PostgreSQL 中使用 "crosstab"?

sql - BigQuery子查询基于所有外部列的返回数字

php - 试图从 php 读取我的 mysql 数据库中用户的状态

sql - Postgres 中没有子查询的总计算百分比