How to get one MAX() between SUMs of several columns in SQL?
It's never going to be pretty, but heres one attempt:

select gt, case gt when math then 'Math' 
                   when physics then 'Physics' 
                   when english then 'English' 
           end 
from (
    select greatest(math, physics, english) as gt
         , math, english, physics 
    from (
        select sum(math) as math
             , sum(english) as english
             , sum(physics) as physics 
        from scores
    )
)