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