Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Durchschnitt mehrerer Spalten

Sie erwähnen nicht, ob die Spalten nullable sind. Wenn dies der Fall ist und Sie dieselbe Semantik wie bei AVG wünschen Aggregat bietet, was Sie tun können (2008)

SELECT *,
       (SELECT AVG(c)
        FROM   (VALUES(R1),
                      (R2),
                      (R3),
                      (R4),
                      (R5)) T (c)) AS [Average]
FROM   Request  

Die Version von 2005 ist etwas langwieriger

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