无效的postgresql表中的空计数和已填充计数
我需要计算一个表中有多少字段是空的、空的和填充的。 其中,每列将是一个字段,例如:无效的postgresql表中的空计数和已填充计数,sql,postgresql,Sql,Postgresql,我需要计算一个表中有多少字段是空的、空的和填充的。 其中,每列将是一个字段,例如: select COUNT(1), case when table.name is null then 'Null' when table.name = '' then 'Empty' else 'Filled' end from table (这是一个示例) 有人知道我该怎么做吗?此表大约有30列。您可以将每一行转换为一个JSON值,然后根据这些JSON值的键(即列名
select COUNT(1),
case when table.name is null
then 'Null'
when table.name = ''
then 'Empty'
else 'Filled' end
from table
(这是一个示例)
有人知道我该怎么做吗?此表大约有30列。您可以将每一行转换为一个JSON值,然后根据这些JSON值的键(即列名)进行分组:
请注意,这将比像您那样手动列出每一列要慢得多 整数列的
null
和“empty”有什么区别?整数列就是一个例子,我有30多个不同类型的列。哇,这太神奇了,我甚至在解释所有这些方面都有困难!它工作得很好,我对一些栏目进行了限制,速度非常快,谢谢!
FIELD NULL EMPTY FILLED
name 0 2 98
age 10 10 80
heigh 0 50 50
select d.col,
count(*) filter (where value is null) as null_count,
count(*) filter (where value is not null) as not_null_count,
count(*) filter (where value = '') as empty
from the_table t
cross join jsonb_each_text(to_jsonb(t)) as d(col, value)
group by d.col;