Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Media di più colonne

Non menzioni se le colonne sono nullable. Se lo sono e vuoi la stessa semantica di AVG aggregato fornisce che puoi fare (2008)

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

La versione 2005 è un po' più noiosa

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