我正在尝试在BIRT中查询图表。我有一个类似于以下的表:
id score_1 score_2 score_3
1 80.5 81.2 81.3
2 90.1 88.9 87.1
3 85.6 87.5 84.8
我需要做的是获取每个得分列的平均值并将其输出为如下行:
score average
1 85.4
2 85.87
3 84.4
在UNION中尝试了一段时间并缺少一系列查询,是否有更有效的方法来解决这个问题?请注意,该表还连接到用于过滤的其他表。
答案 0 :(得分:0)
知道了。你想要在行中的输出。截至目前,TRANSPOSE
似乎没有现成的MySQL
功能。我能想到的最好的就是这个,我相信你已经尝试过了。
SELECT score_id, score_avg
FROM (
SELECT '1' as score_id, avg(score_1) as score_avg FROM scores
UNION
SELECT '2' as score_id, avg(score_2) as score_avg FROM scores
UNION
SELECT '3' as score_id, avg(score_3) as score_avg FROM scores
) as transpose_table;
答案 1 :(得分:-1)
SELECT (score_1 + score_2 + score_3)/3 as AVERAGE
FROM scores;
您可以使用union
SELECT AVG(score_1)FROM scores
UNION
select AVG(score_2) FROM scores
UNION
select AVG(score_3) FROM scores