我想找到多列而不是行的平均值。 目前,我改变了表格,但这会影响性能,因为我的表格非常大,通过转置30列,行数增加了29倍。
colum1 measure1 measure2 measure3 avg abc 100 200 300 200 def 50 60 70 60
我不会一次使用所有30列的平均值,这取决于前端的参数。
我想知道是否有任何其他解决方案可以实现除转置之外的所需结果。 在Redshift中,我正在进行29次表联合以将列转换为行。
您的建议将受到高度赞赏。
谢谢, MC
答案 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