Nie wspominasz, czy kolumny dopuszczają wartość null. Jeśli są i chcesz mieć taką samą semantykę, jak AVG
agregaty, które możesz zrobić (2008)
SELECT *,
(SELECT AVG(c)
FROM (VALUES(R1),
(R2),
(R3),
(R4),
(R5)) T (c)) AS [Average]
FROM Request
Wersja 2005 jest nieco bardziej nudna
SELECT *,
(SELECT AVG(c)
FROM (SELECT R1
UNION ALL
SELECT R2
UNION ALL
SELECT R3
UNION ALL
SELECT R4
UNION ALL
SELECT R5) T (c)) AS [Average]
FROM Request