There's no reason to have a subquery there.
SELECT [Agent Name] AS AgentName
, [Reason Code] AS ReasonCode
, SUM(Cast(Datepart(Second, [Duration]) AS INT) + Cast(60 * Datepart(Minute, [Duration]) AS INT) + Cast(3600 * Datepart(Hour, [Duration]) AS INT)) AS StateDuration
FROM State_Details
GROUP BY [Agent Name]
, [Reason Code]
Gail Shaw
Microsoft Certified Master: SQL Server, MVP, M.Sc (Comp Sci)
SQL In The Wild: Discussions on DB performance with occasional diversions into recoverability