2016-09-06 199 views
0

我想查找多列而不是行的平均值。 目前,我调换了桌子,但是由于桌子非常大,所以影响了桌子的性能,通过移动30列,行数增加了29倍。平均多列

colum1措施1 measure2 measure3平均 ABC 100 200 300 200 高清50 60 70 60

我不打算在时间平均使用全部30列,它在前端取决于我的参数。

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

您的建议将不胜感激。

感谢, MC

回答

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 
+0

的Postgres还没有系统表DUAL –

+0

@ Abihabi87的SELECT语句是部分这很重要。 – dood

+0

但在postgres中,只能使用'SELECT 100 AS measure1,200 AS measure2'而不使用'FROM DUAL'。默认表DUAL不存在于postgres中。 –