Find users with highest rep on multiple sites


Please login or register to vote for this query.

(click on this box to dismiss)


Q&A for those who study, teach, research and apply economics and econometrics

select dbid, name
into #dbs
from master..sysdatabases
where name not in ('Data.StackExchange', 'master', 'model', 'msdb', 'tempdb')
  and right(name, 5) <> '.Meta'
insert into #dbs VALUES(38, 'StackExchange.Meta')

create table #topusers (
  accountid int,
  userid int,
  rep int,
  site varchar(40)

declare @id int, @db varchar(40), @sql varchar(max)
while (select count(*) from #dbs) > 0
  select top 1 @id = dbid, @db = name from #dbs
  set @sql = '
    insert into #topusers
    select AccountId, Id, Reputation, ''' + @db + '''
    from [' + @db + ']..[Users]
    where Reputation > ' + cast(##MinReputation:int?5000## as varchar(max))
  exec (@sql)
  delete from #dbs where dbid = @id

  accountid as [Account Id],
  count(accountid) as [Site count],
    (select ',   ' + 
     case when left(site, 14) = 'stackexchange.' 
       then substring(site, 15, len(site))
       else site
     end + ':' + cast(rep as varchar(max)) 
       from #topusers 
       where (accountid = u.accountid) 
       for xml path(''),type
    ,1,2,'') as [Site:rep]
from #topusers u
group by accountid
order by count(accountid) desc

Enter Parameters

Switch to meta site
loading Hold tight while we fetch your results