Postgresql 计算多列中的空值数
我想计算单个表中几列中出现的Postgresql 计算多列中的空值数,postgresql,Postgresql,我想计算单个表中几列中出现的NULL。我需要的是每列的计数,而不是整个表的总数。我非常希望在单个查询中这样做,以避免来回的开销,简化我的应用程序端代码,并避免多个表扫描 如何计算每个特定列为NULL的行数 迄今为止的想法 COUNTexplicit对非NULL的事物进行计数,但我可以这样做,将NULL转换为非NULL,反之亦然,强制COUNT执行我想要的操作: SELECT COUNT(CASE WHEN my_column IS NULL THEN TRUE ELSE NULL END) F
NULL
。我需要的是每列的计数,而不是整个表的总数。我非常希望在单个查询中这样做,以避免来回的开销,简化我的应用程序端代码,并避免多个表扫描
如何计算每个特定列为NULL
的行数
迄今为止的想法
explicit对非COUNT
的事物进行计数,但我可以这样做,将NULL
转换为非NULL
,反之亦然,强制NULL
执行我想要的操作:COUNT
但这真的非常丑陋,特别是因为我想在同一个查询中对多个列执行此操作SELECT COUNT(CASE WHEN my_column IS NULL THEN TRUE ELSE NULL END) FROM my_table;
在输入为NULLIF
时返回NULL
,因此这没有帮助NULL
SELECT COUNT(*)-COUNT(column1) As column1, COUNT(*)-COUNT(column2) As column2 FROM my_table;
也许这对你有用。正如您所提到的,COUNT
只计算非空值,这将为您提供所需的空值之和。尝试以下方法:
SELECT COUNT(*)-COUNT(column1) As column1, COUNT(*)-COUNT(column2) As column2 FROM my_table;
也许这对你有用。正如您所提到的,
COUNT
只计算非空值,这将为您提供所需的空值之和。我简要地提到,我希望对同一查询中的多个列执行此操作。我将修改这个问题,以进一步强调这一点。非常感谢。很抱歉,我没有说得更清楚。@jpmc26我明白了-编辑似乎更合适吗?我似乎有更多的澄清要做。我需要单个列的计数(因此A列中的NULL
s的数量和B列中的NULL
s的数量)。再次抱歉。我非常感谢您的帮助。我简要地提到,我希望在同一个查询中的多个列上执行此操作。我将修改这个问题,以进一步强调这一点。非常感谢。很抱歉,我没有说得更清楚。@jpmc26我明白了-编辑似乎更合适吗?我似乎有更多的澄清要做。我需要单个列的计数(因此A列中的NULL
s的数量和B列中的NULL
s的数量)。再次抱歉。我非常感谢你的帮助。