Calculate Average of the largest values in multiple columns

May be are you asking this?

SELECT ID,
  (SELECT AVG(v) 
   FROM (VALUES (Mark1), (Mark2), (Mark3), (Mark4), (Mark5)) AS value(v)) as [AverageMarks]
FROM Table1

If you are looking for only Average of 2 highest subjects among 3 subjects then try this.

SELECT ID,
  (SELECT (SUM(v)-MIN(V))/2
   FROM (VALUES (Mark1), (Mark2), (Mark3)) AS value(v)) as [AverageMarks]
FROM Table1

FIDDLE DEMO

Leave a Comment