一个 Teradata 查询中的空值和非空值计数

t_r*_*er9 3 sql teradata

在 mySQL 中,如果我想查找一个查询中某一列的空值和非空值之和,我可以使用

SELECT 
SUM(col IS NOT NULL),
SUM(col IS NULL)
FROM test
Run Code Online (Sandbox Code Playgroud)

但是,相同的语法在 Teradata 中不起作用(语法错误:预期在单词“col”和“IS”关键字之间存在某些内容。)

如何将上述逻辑应用到 Teradata 中?

Gor*_*off 5

使用CASE

SELECT SUM(CASE WHEN col IS NOT NULL THEN 1 ELSE 0 END),
       SUM(CASE WHEN col IS NULL THEN 1 ELSE 0 END)
FROM test;
Run Code Online (Sandbox Code Playgroud)

或者,使用COUNT()

SELECT COUNT(col),
       COUNT(*) - COUNT(col)
FROM test;
Run Code Online (Sandbox Code Playgroud)

这两个都是标准 SQL,可以在任何数据库中使用。