JustI just wanted to add to ROFL's@rolfl's answer. I have no love at all for CTE'sCTEs. They are almost always slower than using a temporary table or selecting from a subquery.
CTE'sCTEs are usually slower than Table Variables too, in my experience with SQL Server at least, although there is little reason to use a Table Variable if you have more than a handful of rows.
I took the liberty of taking the code from ROFL's answer and changing the CTE into a subquery that is directly selected from, it significantly improved the speed, down from ~60ms to ~30ms.
Here is my alteration:
declare @Language nvarchar(25) = ##LanguageTag:string##;
declare @tagid int;
declare @epoch datetime = DateDiff(yy, -68, current_timestamp);
select @tagid = Id
from Tags
where TagName = @Language
print @Language + '->' + Convert(NVarchar(max), @tagid);
Select CreationMonth,
count(*) as [Count of Tickets],
avg(Elapsed)/3600.0 as [Average hours to first Answer]
From
(
Select Q.Id,
Convert(Date, DateAdd(day, 1 - DatePart(day, Q.CreationDate), Q.CreationDate)) as CreationMonth,
Convert(float, DATEDIFF(second, Q.CreationDate, min(A.CreationDate))) AS Elapsed
From PostTags T,
Posts Q,
Posts A
Where T.TagId = @tagid
and T.PostId = Q.Id
and Q.PostTypeId = 1
and A.PostTypeId = 2
and Q.ClosedDate is null
and Q.Id = A.ParentId
and A.CreationDate > Q.CreationDate -- validation, and also merges.
and Q.CreationDate >= @epoch
and A.CreationDate < CURRENT_TIMESTAMP
Group by Q.Id,
Q.CreationDate,
Convert(Date, DateAdd(day, 1 - DatePart(day, Q.CreationDate), Q.CreationDate))
) As AnswerTime
Group by CreationMonth
order by CreationMonth