簡體   English   中英

在不知道列名的情況下選擇表的統計操作

[英]Select statistical operations on table without knowing column names

我正在分析定量,最小,最大,平均值,標准偏差等定量表的數據質量。

不知道表列名稱的情況下,如何在所有表列上選擇不同的統計運算(最小,最大,標准偏差...)?

所以像這樣:

從表1中選擇min(col1),max(col1),stdev(col1),min(col2)...,min(colN)

但是要動態引用列名,因為我必須在具有不同列名的許多表上運行它,並且我不想每次都更改代碼。

我正在使用SQL Management Studio。

非常感謝您

好吧,這是做這種事情的一種相當合理的方法:
注意您需要將其余的數字數據類型添加到此示例。

DECLARE @SQL nvarchar(max) = '';

SELECT @SQL = @SQL + 
'
UNION ALL
SELECT '''+ TABLE_NAME +''' As TableName, 
       '''+ COLUMN_NAME +''' As ColumnName, 
       MIN('+ COLUMN_NAME +') As [Min], 
       MAX('+ COLUMN_NAME +') As [Max], 
       STDEV('+ COLUMN_NAME +') As [STDEV]
FROM '+ TABLE_NAME
FROM information_schema.columns
WHERE DATA_TYPE IN('tinyint', 'smallint', 'int', 'bigint') -- Add other numeric data types 

SELECT @SQL = STUFF(@SQL, 1, 11, '') -- Remove the first `UNION ALL` from the query

EXEC(@SQL)

查詢結果的結構如下:

TableName   ColumnName  Min     Max     STDEV
Table1      Col1        -123    543     100
Table1      Col2        54      72      5
Table1      Col3        0       1000    100

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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