首页 > 解决方案 > 我的表有多个列,我想获取每列中的值计数并在 postgresql 中分别显示每列的计数值

问题描述

我想从表的每一列中获取每个非空项目的计数值。该表包含 86 列,我希望表格格式的输出具有:

列名 | 数数

感谢您在这方面的任何帮助。谢谢

标签: sqlpostgresqlselectcountaggregate-functions

解决方案


to_jsonb()您可以使用然后对每个列名进行分组和计数,将所有列动态转换为行:

select j.column_name, count(j.value)
from the_table t
  cross join lateral jsonb_each_text(jsonb_strip_nulls(to_jsonb(t))) as j(column_name, value)
group by j.column_name
order by j.column_name;

在线示例


推荐阅读