Find users with highest rep on multiple sites

4

Please login or register to vote for this query.

(click on this box to dismiss)

Economics

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
begin
  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
end


select 
  accountid as [Account Id],
  count(accountid) as [Site count],
  stuff
    (
      (select ',   ' + site + ':' + cast(rep as varchar(max)) 
       from #topusers 
       where (accountid = u.accountid) 
       for xml path(''),type
       ).value('(./text())[1]','varchar(max)')
    ,1,2,'') as [Site:rep]
from #topusers u
group by accountid
order by count(accountid) desc

Enter Parameters

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