You want the average of all var1, var2, and var3 to be in all columns. Maybe for each column a sub-selection is selected to get its average value, with each sub-selection being combined together. Down side this will only work if each column has the same number of nonzero fields
SELECT AVG(FirstAvg) FROM ( SELECT AVG(var1) AS FirstAvg FROM test UNION SELECT AVG(var2) AS FirstAvg FROM test UNION SELECT AVG(var3) AS FirstAvg FROM test ) Sub1
To fix this problem, maybe just AVG once per sub selects
SELECT AVG(FirstAvg) FROM ( SELECT var1 AS FirstAvg FROM test UNION SELECT var2 AS FirstAvg FROM test UNION SELECT var3 AS FirstAvg FROM test ) Sub1
To get average values ββof other columns: -
SELECT AVG(var1), AVG(var2), AVG(var3), AVG(FirstAvg) AS total FROM ( SELECT var1 AS var1, NULL AS var2, NULL AS var3, var1 AS FirstAvg FROM test UNION SELECT NULL AS var1, var2 AS var2, NULL AS var3, var2 AS FirstAvg FROM test UNION SELECT NULL AS var1, NULL AS var2, var3 AS var3, var3 AS FirstAvg FROM test ) Sub1
source share