我只有1列。我需要了解它的價值觀和他們的使用統計:如何在表中選擇不同的值及其用法?
Value | Count
-----------------
NULL | 41 (91%)
'' | 3 (3%)
'FOO' | 2 (2%)
'BAR' | 1 (1%)
此外,我需要爲數據庫中的每一列進行這樣的查詢。有用來幫助我處理這些報告的工具嗎?我問了Postgresql/Mysql。
我只有1列。我需要了解它的價值觀和他們的使用統計:如何在表中選擇不同的值及其用法?
Value | Count
-----------------
NULL | 41 (91%)
'' | 3 (3%)
'FOO' | 2 (2%)
'BAR' | 1 (1%)
此外,我需要爲數據庫中的每一列進行這樣的查詢。有用來幫助我處理這些報告的工具嗎?我問了Postgresql/Mysql。
select value , count(*) from table
group by value
更換table
爲你的表名和value
爲您的列名
隨着百分比:
select value
,count(*)
,COUNT(*)/(select cast(COUNT(*) as decimal) as Total from table) as Usage
from table
group by value
該死的,太容易了!我對DISTINCT有所感觸,虛擬表/連接對於這項任務來說是過分的。 – FirstTimePoster
公用表表達式救援(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;
它的工作原理!謝啦! – FirstTimePoster
CTE(WITH ...)的優點在於,該計數只能運行一次。 –
以下代碼僅顯示錶I的第一列(以隨機順序)需要: SELECT DISTINCT ColumnName FROM TableName; – FirstTimePoster