在Snowflake中,我如何返回一列的平均值,其中空值被视为零.所以,如果我们有3个值:1,2,NULL,我想返回1,而不是AVG函数返回的1.5.

推荐答案

可以使用COALESCE将空值替换为0:

CREATE OR REPLACE TABLE foo AS 
  SELECT $1
    FROM VALUES ( 1 ), ( 2 ), ( NULL);
    
SELECT AVG(COALESCE($1, 0)) FROM foo;

Sql相关问答推荐

PG SQL中按条件聚合值

Access中执行INSERT INTO查询时出现错误消息

同一表的Oracle SQL更新(含YTD合计)

在VB.NET中如何在MS Access数据库中创建SQL项目历史库存卡

postgres中的条件索引和触发器

SQL:使用年/月/日分区查询某个时间段的数据

group-by-clause具有特定列,而不是oracle的toad中的all

我需要在 ASP.NET C# 中获取 2 个 SQL 查询结果的平均值

SQL SUM Filter逻辑解释

如何为 ActiveRecord 联接应用附加条件

计算组内多个日期间隔go 年的累计天数

Spark / Hive:如何获取列中正值的百分比?

根据不同日期标准分配组的逻辑

SQL 多个不满足的条件失败

for each 客户查找每个类别的最新评分

如何根据与 BigQuery 中另一个表的匹配更新一个表中的列?

当没有任何行存在时,将一个表中的行插入到另一个表中的更好方法

在sql server中创建唯一标识符列

SQL中所有先前日期的累计总和

SQL 中的问题与包含最大日期的记录连接