首页 > 解决方案 > 在 sql 中执行带有简单统计信息的表

问题描述

select
x1.
x2
...
x100
from mytab

我如何计算所有 100 列的平均值、最小值、最大值、标准差

IE 输出

column  mean    min max sigma
x1      1          1    1   1
x2      1          1    1   1
x3      1          1    1   1

怎么做?

标签: sqlsql-servertsql

解决方案


我会取消透视然后进行聚合:

select v.colname, avg(v.val), min(v.val), max(v.val), stdev(v.val)
from t cross apply
     (values ('x1', x1), ('x2', x2), . . .
     ) v(colname, val)
group by v.colname;

您需要列出values()子句中的所有列。您可能会发现使用 SQL 查询或电子表格更容易构建。


推荐阅读