我在表中有 30 个数字数字列。我想为表中的所有列找到平均值、标准、百分位数。我不想像下面那样手动编写所有列名
select date,
avg(col1), stddev(col1),
avg(col2), stddev(col2),
from table name group by date;
有什么方法可以一次找到所有列的均值、标准差和百分位数。
最佳答案
您可以使用横向连接简化逻辑:
select which, min(val), max(val), stddev(val), avg(val)
from t, lateral
(values ('col1', col1), ('col2', col2), . . .
) v(which, val)
group by which;
您仍然需要列出列,但您只需要在
values
中列出一次条款。
关于sql - 查找表中所有数值变量的均值、标准差、百分位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50441058/