I am aware that there is a list of top users for each of the Stack Exchange sites. However, I am wondering if there is a list showing the combined reputation of each Stack Exchange user from every of the sites they have a profile in. For example if a user has 5000 on SO, 5000 on Server Fault and 5000 on Superuser they should be listed as having a combined reputation of 15000 in such a list.
-
15Do you want the obvious answer :-), the actual answer (almost definitely the same as the obvious one) or a way of finding the actual answer out in the future?– ben is uǝq backwardsOct 30, 2013 at 22:19
-
4There is no such list, but noone can touch Jon Skeet even if there were. The next highest-scoring site is Mathematics, and the top user there has 200k. That's not nearly enough to come close to 693k that Jon has accumulated network wide. I'd say Marc Gravell comes second.– Martijn PietersOct 30, 2013 at 22:20
-
2This would be more interesting if we ranked users for sites similar in age or volume like amongst all beta sites, or all sites less than a year old. That will be much more useful than looking at the entire network.– asheeshrOct 31, 2013 at 5:44
-
Interesting variant: Who has the most rep when excluding their primary site?– CodesInChaosOct 31, 2013 at 8:51
-
Would be nice if there was a way to generate an actual list combining more than one site, restricting to a particular category (Technology/Life Arts etc). Also interesting would be list showing users who have joined the most sites.– Paul TaylorNov 19, 2015 at 8:11
-
1By now things changed a bit and Mathematics does not have the highest scoring users outside SO anymore. The highest accumulated point count besides the very top SO users I know of is that of Gilles at the moment 677k. I'd speculate he could be number two in a not too distant future. Another noteworthy user is egreg whose 474k on TeX - LaTeX is I believe the single highest rep on a site, excluding SO.– quidMay 7, 2016 at 14:33
-
@CodesInChaos I implemented your suggestion in my answer– reneMay 7, 2016 at 21:22
-
There would be a bit of a problem, because you get 100 free reputation for each new site as a reward, so average users wouldn't be able to accurately compare reputation. It would be good to see the leaders, though.– Jason ChenJul 4, 2017 at 18:50
-
This question'so answers should be updated. Where is @Valorum from Scifi SE ?– TheMadHatterJul 28, 2020 at 17:55
-
✋ Top users from World's All Countries: data.stackexchange.com/stackoverflow/query/1250968– p tJan 27, 2021 at 17:58
3 Answers
The answer undoubtedly is Jon Skeet.
The closest 2nd rank holder is Gilles.
The SEDE query by rene is really helpful for generating an entire list.
-
59@jmort, you have it backwards, the infinity symbol should change its name to Jon Skeet for Halloween.– jmacOct 31, 2013 at 7:58
-
4
-
6@thegrinner good point. The infinity symbol should dress up as the infinity symbol for Halloween, because every other day of the year it is Jon Skeet -- the Alpha and the Omega, the beginning and the end.– jmacOct 31, 2013 at 13:55
-
2I predict a Y2K scenario whereby when Jon Skeet reaches 1M, SE blows up and everyone is left homeless for a month.– user212477Jul 30, 2014 at 22:39
-
3No surprise that the title should go to the guy who can recite Pi, backwards. Jun 15, 2016 at 21:34
-
4@jasonchen Chuck Norris asked how to be awesome, and Jon Skeet answered the question.– YakkOct 22, 2017 at 12:51
There were so many attempts the last few days to either improve or update this question that I decided to have a go with a multi-database query in SEDE.
This beast is the result:
-- start create url from dbname
IF OBJECT_ID ( '#siteurl', 'P' ) IS NOT NULL
DROP PROCEDURE #siteurl;
GO
create procedure #siteurl
@dbname nvarchar(250),
@res nvarchar(250) OUT
as
begin
-- we have three sites that have borked DNS entries
set @dbname = (case @dbname
when 'StackExchange.Audio' then 'StackExchange.Avp'
when 'StackExchange.Audio.Meta' then 'StackExchange.Avp.Meta'
when 'StackExchange.Mathoverflow.Meta' then 'net.Mathoverflow.meta'
else @dbname
end)
-- and one of those doesn't want to end with .com
if @dbname <> 'net.Mathoverflow.meta'
set @dbname = 'com.' + @dbname
exec #recursesiteurl @dbname, @res OUTPUT
end
GO
-- create url from dbname
IF OBJECT_ID ( '#recursesiteurl', 'P' ) IS NOT NULL
DROP PROCEDURE #recursesiteurl;
GO
create procedure #recursesiteurl
@dbname nvarchar(250),
@res nvarchar(250) OUT
as
begin
declare @pos integer
declare @rec nvarchar(250)
set @res = @dbname
set @pos = CHARINDEX('.', @dbname)
if (@pos > 0 )
begin
set @rec = substring(@dbname, @pos+1, len(@dbname))
exec #recursesiteurl @rec, @rec output
set @res = @rec
+ '.'
+ substring(@dbname, 0, @pos)
end
end;
GO
-- all databases
declare db_c cursor for select [name]
from sys.databases
where database_id > 5 -- skip master, temp, model, msdb, Data.SE
and ([name] not like '%.Meta' or [Name] = 'StackExchange.Meta')
declare @db_c_name sysname -- holds name of db after fetch
declare @sql nvarchar(max) -- holds build up sql string
-- result table
create table #all_users ( site nvarchar(250)
, userid int
, rep int
, accountid int
, displayname nvarchar(250));
open db_c
fetch next from db_c into @db_c_name
while(@@FETCH_STATUS = 0)
begin
set @sql = N'use '+ QUOTENAME(@db_c_name) +';
declare @url nvarchar(250)
exec #siteurl ''' + @db_c_name + ''', @url output
insert into #all_users
select @url
, id
, reputation
, accountid
, displayname
from users;'
exec (@sql)
fetch next from db_c into @db_c_name
end;
close db_c;
deallocate db_c;
;with max_user_site as
(
select row_number() over(order by sum(rep) desc) as rank
, accountid
, sum(rep) as tot_rep
from #all_users
group by accountid
),
max_site_for_user as
(
select userid
, accountid
, displayname
, site
, rep
from #all_users au
where rep = (select max(rep)
from #all_users
where accountid = au.accountid)
),
max_user_site_excl_main as
(
select row_number() over(order by sum(rep) desc) as rank
, accountid
, sum(rep) as tot_rep
from #all_users au
where rep < (select max(rep)
from #all_users
where accountid = au.accountid)
group by accountid
)
select mus.rank
, replace(
replace(
replace(msu.site,
'.StackExchange.com',''),
'.com',''),
'.net','') as [site]
, 'http://'
+ msu.site
+ '/users/'
+ cast(msu.userid as nvarchar)
+ '|'
+ msu.displayname as [user]
, mus.tot_rep as [total rep]
, replace(
replace(
replace(msu2.site,
'.StackExchange.com',''),
'.com',''),
'.net','') as [site]
, 'http://'
+ msu2.site
+ '/users/'
+ cast(msu2.userid as nvarchar)
+ '|'
+ msu2.displayname as [user]
, msuem.tot_rep as [total rep]
from max_user_site mus
inner join max_site_for_user msu on msu.accountid = mus.accountid
inner join max_user_site_excl_main msuem on mus.rank = msuem.rank
inner join max_site_for_user msu2 on msu2.accountid = msuem.accountid
order by mus.rank
drop table #all_users
drop procedure #recursesiteurl
drop procedure #siteurl
I implemented the suggestion from CodesInChaos to show the rank without their main site rep included. If you let it run for a while you'll get this result today:
-
Yay, I missed nobody! Great query, I'm quite sure I couldn't have done this. May 8, 2016 at 18:51
-
-
-
2@DonaldDuck ranking of users without their own top scoring site. That should bring those to the top who participate on a broader range of sites instead of focusing on one– reneMay 12, 2018 at 13:46
-
@rene: I can't find myself on there. Is it because I complained about you closing that question about "changing moderators every X years" ? Or is it because your program filters out users that have usernames like "user1234567" ? Nov 2, 2018 at 7:38
-
@user1271772 if I would have to track every userid I expect to be disappointed by my actions I would have a fulltime job here with retroactively adapting all my queries. It is more likely you found a bug in my query but at first glance I can't see why it doesn't include your account. I'll take a look at it over the weekend.– reneNov 2, 2018 at 9:48
-
@rene, I believe it is a bug, because I scrolled down through about 10,000 usernames (just because I found it very fun to watch how much longer it took to get from rep 100000 to 99000 then 101000 to 100000, and so on) and never once saw a "use1233454" type of username as far as I can remember. Thank you for offering to look at it over the weekend! Nov 2, 2018 at 12:01
-
@user1271772 the one thing I did notice is that on your main site you have around 5.2K and in the main site query the cutoff is at 5.7k due to the restriction of only being able to show 50.000 rows max. I'll dig into it.– reneNov 2, 2018 at 12:12
-
@user1271772 Okay, here is a new build-up query that puts your ranking records at the top (so you can see what your rank is in the total result): data.stackexchange.com/stackoverflow/query/920425/… I have not yet added the linking to usernames as that requires a bit more fiddling which I don't want to spend time on now as that would push this over my weekend. Just for the record: your account is present in the original query but only in the left columns. I couldn't find it in the right columns, so something seems off there.– reneNov 4, 2018 at 22:00
-
Thank you @rene, it is very much improved. There are still some bugs but at least the relevant information is there now! Nov 5, 2018 at 3:00
-
It is saying "Line 0: A severe error occurred on the current command. The results, if any, should be discarded. Operation cancelled by user." for me now. I can check again later to see if this is temporary. Dec 22, 2021 at 3:40
-
The following users were the only users with networkwide more than 600k reputation in May 2016:
- Jon Skeet - 949k (Stack Overflow, Meta)
- Marc Gravell - 694k (Stack Overflow, Meta)
- Gilles - 677k (Unix & Linux, Meta, Stack Overflow)
- Darin Dimitrov - 662k (Stack Overflow)
- BalusC - 653k (Stack Overflow)
- Hans Passant - 634k (Stack Overflow)
- VonC - 617k (Stack Overflow)
- Ignacio Vazquez-Abrams - 606k (Stack Overflow, Super User)
Notes: The sites are all sites they have more than 50k rep on.
As we see, it is very unlikely that anyone will pass Jon Skeet, at least not any time soon.
Besides, the chat list sorted by reputation can be useful, but users that do not use chat are missing and some of the numbers are horribly wrong, also when users don't use chat.
-
3You could insert the flairs, as in the other answer, to have it exact and up to date.– quidMay 8, 2016 at 21:11
-
-
@peterh I think this answer is useful to stay as historical reference. I edited it to indicate this. However, you can add a new answer if you want. Jun 30, 2018 at 20:56