select ApplicationName, avg(PercentAvailability) as AvgAvailability from (select max(ApplicationStatus.TimeStamp) as Month, Nodes.Caption as NodeName, Nodes.DetailsUrl as NodesDetailsUrl, Application.Name as ApplicationName, Application.DetailsUrl as ApplicationDetailsUrl, sum(ApplicationStatus.PercentAvailability * ApplicationStatus.RecordCount) / sum(ApplicationStatus.RecordCount) as PercentAvailability from Orion.APM.ApplicationStatus ApplicationStatus , Orion.APM.Application Application , Orion.Nodes Nodes where ApplicationStatus.TimeStamp >= addminute(minutediff(getdate(), getutcdate()), addmonth(monthdiff(0, getdate()), 0)) and ApplicationStatus.ApplicationID = Application.ApplicationID and Application.NodeID = Nodes.NodeID group by Application.ApplicationID, Application.Name, Nodes.Caption, NodesDetailsUrl, ApplicationDetailsUrl order by Nodes.Caption, Application.Name ) group by ApplicationName