Antworten:
Wenn die Spalten nicht nullwertfähig sind, verwenden Sie einfach
(col1 + col2 + col3)/3
funktioniert einwandfrei (obwohl Sie bei einigen RDBMS möglicherweise einen nicht ganzzahligen Zähler oder Divisor benötigen, um eine ganzzahlige Division zu vermeiden).
Für nullfähige Spalten möchten Sie möglicherweise etwas wie verwenden
SELECT CASE
WHEN COALESCE(col1, col2, col3) IS NOT NULL THEN
( COALESCE(col1, 0) + COALESCE(col2, 0) + COALESCE(col3, 0) ) /
(CASE WHEN col1 IS NULL THEN 0 ELSE 1 END +
CASE WHEN col2 IS NULL THEN 0 ELSE 1 END +
CASE WHEN col3 IS NULL THEN 0 ELSE 1 END)
END
Unter SQL Server können Sie auch verwenden
SELECT *,
(SELECT AVG(Col)
FROM (VALUES(Col1),
(Col2),
(Col3)) V(Col)) AS col_average
FROM YourTable