如何在PostgreSQL中计算空值?

时间:2018-12-26 16:01:29

标签: sql postgresql count null

select distinct "column" from table;

输出:

    column
1     0.0
2     [null]
3     1.0

但是当我尝试计算空值时

select count("column") from train where "column" is NULL;

给出输出0(零)

您能建议哪里出问题了吗?

3 个答案:

答案 0 :(得分:6)

使用count(*)

select count(*) from train where "column" is NULL;

count()与其他任何参数一起计算非NULL值,因此如果"column"NULL则不存在。

答案 1 :(得分:4)

当您要对聚合中的值(包括NULL值)进行计数但不能使用count(*)(如果其他列也不同)时,一些解决方法。

在这些情况下,您可以使用此请求:

count(distinct("column")) + (CASE bool_or("column" is null) WHEN true THEN 1 ELSE 0 END)

count(distinct(column))将计算非空值,如果存在空值,另一部分将添加1

答案 2 :(得分:2)

使用SUM

var carName = "Volvo";

// code here can use carName

function myFunction() {

// code here can also use carName

}