我只有一列。我需要有关它的价值和使用情况的统计数据:
Value | Count
-----------------
NULL | 41 (91%)
'' | 3 (3%)
'FOO' | 2 (2%)
'BAR' | 1 (1%)
另外,我需要对数据库中的每一列执行此类查询。是否可以帮助我处理此类报告?我询问Postgresql / Mysql。
答案 0 :(得分:0)
救援的公用表表达式(在PostgreSQL 9上测试):
WITH a AS (SELECT COUNT(*) AS max FROM t)
SELECT v, COUNT(v), (COUNT(v)::FLOAT / a.max) * 100
FROM t, a
GROUP BY v, a.max
ORDER BY COUNT(v) DESC;
答案 1 :(得分:0)
select value , count(*) from table
group by value
将[{1}}替换为您的表名,将table
替换为您的列名
百分比:
value