Q&A for scientists using computers to solve scientific problems
WITH LanguageMapping AS ( SELECT CASE WHEN TagName IN ('typescript', 'ts', 'angular', 'ionic-framework') THEN 'TypeScript' WHEN TagName IN ('c ', 'cxx', 'cpp', 'boost', 'stl') THEN 'C ' ELSE NULL END AS ProgrammingLanguage, PostId FROM ( SELECT PostId, TagName, ROW_NUMBER() OVER (PARTITION BY PostId ORDER BY TagName) as rn FROM PostTags INNER JOIN Tags ON Tags.Id = PostTags.TagId ) t WHERE rn = 1 ) SELECT DATEPART(yyyy, Posts.CreationDate) AS Year, DATEPART(mm, Posts.CreationDate) AS Month, LanguageMapping.ProgrammingLanguage, COUNT(*) AS NumQuestions FROM Posts INNER JOIN LanguageMapping ON Posts.Id = LanguageMapping.PostId WHERE Posts.PostTypeId = 1 AND LanguageMapping.ProgrammingLanguage IS NOT NULL GROUP BY DATEPART(yyyy, Posts.CreationDate), DATEPART(mm, Posts.CreationDate), LanguageMapping.ProgrammingLanguage ORDER BY Year, Month, NumQuestions DESC