sql - 查找表中所有数值变量的均值、标准差、百分位数

标签 sql postgresql stored-procedures plpgsql greenplum

我在表中有 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/

相关文章:

c# - 存储过程未返回输出参数

MySQL:为什么与变量相比,使用文字条件的查询运行得更快

stored-procedures - 使用 sql 任务将参数传递给存储过程

postgresql - 在 PostgreSQL : Trailing zeros 中按货币类型排序

java - 如何使用 postgis 和 hibernate-spatial 正确映射多边形类型?

sql - filterLogging 不适用于 Database.Persist.Sql 的 runSqlPool 函数

sql - 各个字段的子查询创建多条记录

sql - 如何使用通配符删除 PostgreSQL 中的多个表

mysql - SQL中连接垂直表和水平表的最佳方法

python - 将 CSV 数据插入 MySQL 数据库 - "You have an error in your SQL syntax; near ' ' 在第 1 行