Bhuvnesh,
CROSS APPLY (
VALUES(High, 'High', DATEPART(dw, CAST(DateID AS CHAR(8))))
,(Low, 'Low', DATEPART(dw, CAST(DateID AS CHAR(8))))) a (Val, Type, weekday)
GROUP BY CompanyName, Type
is similar to
CROSS APPLY (
select High as val , 'High' as Type , DATEPART(dw, CAST(DateID AS CHAR(8))) as Weekday
union all
select Low as val, 'Low' as Type , DATEPART(dw, CAST(DateID AS CHAR(8)))
) a
GROUP BY CompanyName, Type
Hope you understood..
Thanks,
Saurabh