Q&A for professional robotic engineers, hobbyists, researchers and students
select *, count(*) from ( select CAST( cast(DATEPART(YYYY, CreationDate) as varchar) + '-' + cast(DATEPART(MM, CreationDate) as varchar) + '-01' as date) Month, t.TagName from Posts p join PostTags pt on pt.PostId = p.Id join Tags t on t.Id = pt.TagId where t.TagName in ('java', 'c#', 'php', 'ruby') ) as X where month between cast('2010-01-01' as date) and cast('2012-04-20' as date) group by TagName, Month order by Month asc, count(*) desc