Q&A for professional mathematicians
---based on this template: https://data.stackexchange.com/stackoverflow/query/1004129/multi-db-template-with-hostname declare @sql nvarchar(max) create table #result (site sysname , hostname sysname , avgupvotesperrep decimal(9,5) , avgdownvotesperrep decimal(9,5) ) select @sql = N'insert into #result' + STRING_AGG(concat(N' select ''', name ,N''' as site , ''',hostname ,N''' , AVG(CAST(upvotes AS decimal)/CAST(reputation AS decimal)) , AVG(CAST(downvotes AS decimal)/CAST(reputation AS decimal)) from ', quotename(name), N'.dbo.Users u where u.Reputation>=##min?125## '),N' union all') from (select convert(nvarchar(max),name) name -- , convert(nvarchar(max),sitename) sitename -- , meta -- , domain , concat( -- based on an idea from Glorfindel -- https://meta.stackexchange.com/a/321181 (case sitename WHEN 'Audio' THEN 'video' WHEN 'Beer' THEN 'alcohol' WHEN 'CogSci' THEN 'psychology' WHEN 'Garage' THEN 'mechanics' WHEN 'Health' THEN 'medicalsciences' WHEN 'Moderators' THEN 'communitybuilding' WHEN 'Photography' THEN 'photo' WHEN 'Programmers' THEN 'softwareengineering' WHEN 'Vegetarian' THEN 'vegetarianism' WHEN 'Writers' THEN 'writing' WHEN 'Br' THEN 'pt' WHEN 'Mathoverflow' THEN concat((meta+'.'), sitename) ELSE case when sitename = domain then null else sitename end end +'.') , (case when sitename <> 'mathoverflow' then (meta+'.') else null end) , (case when sitename <> 'mathoverflow' then concat((domain + '.'), 'com') else 'net' end) ) hostname from ( select name , case parsename(name,1) when 'Meta' then parsename(name,2) else parsename(name,1) end [sitename] , case parsename(name,1) when 'Meta' then 'meta' else null end [meta] , coalesce(parsename(name,3), parsename(name,2)) [domain] from sys.databases where database_id > 5 and (name not like '%.Meta' or name = 'StackExchange.Meta') ) dbs ) dbsall exec (@sql) select RANK() OVER(ORDER BY avgdownvotesperrep DESC) AS Rank, * from #result order by avgdownvotesperrep DESC