Q&A about the site for members of the workforce navigating the professional setting
declare @sql nvarchar(max) create table #result (site sysname , hostname sysname , userid int , gold int , silver int , bronze int , total int ) select @sql = N'insert into #result' + STRING_AGG(concat(N' select ''', name ,N''' as site , ''',hostname ,N''' , u.id , sum(case when b.class = 1 then 1 else 0 end) , sum(case when b.class = 2 then 1 else 0 end) , sum(case when b.class = 3 then 1 else 0 end) , count(b.Id) from ', quotename(name), N'.dbo.badges b inner join', quotename(name), N'.dbo.tags t on t.tagname=b.name inner join', quotename(name), N'.dbo.users u on b.UserId=u.id and u.AccountId=',CAST(##AccountId:int?-1## as nvarchar), ' group by u.id', ' '),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 like '%.Meta') ) dbs ) dbsall exec (@sql) select site, hostname, concat('https://',hostname,'/users/',CAST(userid AS varchar)) AS [User], gold, silver, bronze, total from #result ORDER BY gold DESC, silver DESC, bronze DESC, total DESC