Question stats by tag

4

Please login or register to vote for this query.

(click on this box to dismiss)

Audio-Video Production Meta

Q&A about the site for engineers, producers, editors, and enthusiasts spanning the fields of video, and media creation

declare @FirstId int = (SELECT min(Id) FROM dbo.Posts WHERE PostTypeId = 1);
DECLARE @FirstQuestion datetime = (SELECT CreationDate FROM dbo.Posts WHERE Id = @FirstId);




  SELECT TagName,
         cast(ISNULL(DATEDIFF(minute, q.CreationDate, MIN(a.CreationDate)), 
         9999999) as bigint) TTA
  into #answers
  FROM Posts q
       join PostTags on q.Id = PostId
       join Tags t on t.Id = TagId 
       left join Posts a ON a.ParentId = q.Id 
                            and a.OwnerUserId <> q.OwnerUserId
  WHERE q.PostTypeId = 1 and q.CreationDate >= @FirstQuestion 
        AND q.ClosedDate IS NULL
        AND q.Score >= 0
        and a.CreationDate > q.CreationDate
        and t.TagName in (##tag##)
  GROUP BY q.Id, q.CreationDate, TagName;


with

median_answer as (
  select TagName,
         PERCENTILE_CONT(0.5) 
                  WITHIN GROUP (ORDER BY TTA)
                  OVER (PARTITION BY TagName)
               median_tta
  from #answers
),

medians as (
  select TagName, 
         -- http://stackoverflow.com/a/8846679/1438
         PERCENTILE_DISC(0.5) 
                  WITHIN GROUP (ORDER BY ViewCount)
                  OVER (PARTITION BY TagName)
               median_views,
               
         PERCENTILE_DISC(0.5) 
                  WITHIN GROUP (ORDER BY AnswerCount)
                  OVER (PARTITION BY TagName)
               median_answers,
               
         PERCENTILE_DISC(0.5) 
                  WITHIN GROUP (ORDER BY Score)
                  OVER (PARTITION BY TagName)
               median_score
  from Posts p
       join PostTags on p.Id = PostId
       join Tags t on t.Id = TagId
  where PostTypeId = 1
        and TagName in (##tag##)
),

averages as (
  select TagName, 
         count(*) N,
         avg(ViewCount) avg_views,
         round(avg(1.0*Score), 1) avg_score,
         round(100.0*count(ClosedDate)/count(*), 1) closed_rate,
         round(avg(1.0*AnswerCount), 1) avg_answers,
         round(100.0*count(AcceptedAnswerId)/count(*), 1) accepted_rate,
         round(100.0*count(case 
                             when AnswerCount > 0 then 1 
                           end)/count(*), 1) answer_rate
  from Posts p
       join PostTags on p.Id = PostId
       join Tags t on t.Id = TagId
  where PostTypeId = 1
        and TagName in (##tag##)
  group by TagName
)

select m.TagName, 
       N, 
       median_views,
       avg_score,
       closed_rate,
       avg_answers,
       accepted_rate,
       answer_rate,
       median_tta

from medians m
     join averages c on c.TagName = m.TagName
     join median_answer a on a.TagName = m.TagName
order by m.TagName

Enter Parameters

Options:
Switch sites:
loading Hold tight while we fetch your results