平均多列

时间:2016-09-06 11:40:23

标签: sql postgresql amazon-redshift

我想找到多列而不是行的平均值。 目前,我改变了表格,但这会影响性能,因为我的表格非常大,通过转置30列,行数增加了29倍。

colum1 measure1 measure2 measure3 avg abc 100 200 300 200 def 50 60 70 60

我不会一次使用所有30列的平均值,这取决于前端的参数。

我想知道是否有任何其他解决方案可以实现除转置之外的所需结果。 在Redshift中,我正在进行29次表联合以将列转换为行。

您的建议将受到高度赞赏。

谢谢, MC

1 个答案:

答案 0 :(得分:2)

尝试这样的事情(Oracle查询):

WITH input_data AS (
  SELECT 100 AS measure1, 200 AS measure2 FROM DUAL
  UNION ALL
  SELECT 1000 AS measure1, 2000 AS measure2 FROM DUAL
)
SELECT (a.measure1 + a.measure2) / 2 AS measure_avg FROM input_data a

输出:

MEASURE_AVG
150
1500