簡體   English   中英

如何從非常大的表的每一列中獲取每個值的計數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM