[英]How to get counts of each value from every column from a very large table?
我有一個非常大的表,其中有200余條記錄,其中有數百列。 我想獲取每一列中每個值的計數(大多數列包含2到15個不同的值),甚至可能按狀態將其細分(表中有一個state字段)。 我知道如何獲取值的計數,但是我正在尋找最有可能完全殺死服務器的最有效方法。 我在服務器上有其他數據庫,我不想影響太大。 有任何想法嗎?
您可以嘗試執行以下操作:
select col, val, count(*)
from t cross apply
(values ('col1', col1), ('col2', col2), . . . ) v(col, val)
group by col, val
order by col, count(*) desc;
由於您要引用的大多數列都可能沒有索引,因此任何查詢運行都可能消耗大量資源。
我建議您嘗試一些類似的方法
select state,'colname',colname,count(*) as cnt
from tablename
group by state,colname
“ colname”是一個靜態名稱,代表您要報告的列。
對您要處理的每一列重復該過程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.