Toggle navigation
Home
New Query
Recent Queries
Discuss
Database tables
Database names
MediaWiki
Wikibase
Replicas browser and optimizer
Login
History
Fork
This query is marked as a draft
This query has been published
by
-revi
.
Toggle Highlighting
SQL
USE metawiki_p; -- Modify startdate and enddate to change dates SET @startdate = '20180401000000'; SET @enddate = '20181001000000'; -- regex for exempt users SET @exempt_username_pattern = ' \\(WMF\\)$|-WMF$|WMFOffice'; -- Define for what is a sysop action SET @sysoplogtype = CAST( "( 'abusefilter', 'block', 'contentmodel', 'delete', 'import', 'lock', 'managetags', 'massmessage', 'merge', 'protect', 'rights', 'tag', 'timedmediahandler' )" AS CHAR ); -- misc SET @logwhere = CONCAT( "ug_group = 'sysop' ", "AND log_type IN ",@sysoplogtype," ", "AND log_user_text NOT REGEXP @exempt_username_pattern ", "AND log_timestamp BETWEEN @startdate AND @enddate " ); SET @zeroaction = CONCAT( "SELECT ug_user as userid, user_name as username, 0 ", "FROM user_groups JOIN user ON ug_user = user_id ", "WHERE ug_group = 'sysop' ", "AND user_name NOT REGEXP @exempt_username_pattern " ); -- show count of sysop actions in the term SET @logcountsql = CONCAT( "SELECT userid, username, SUM(sysoplogs) as SysopActionCount ", "FROM (", "SELECT ug_user as userid, log_user_text as username, count(*) as sysoplogs FROM user_groups LEFT JOIN logging ON ug_user = log_user ", "WHERE ",@logwhere, "GROUP BY ug_user ", "UNION ", @zeroaction, ") as t GROUP BY userid ", "ORDER BY SysopActionCount asc " ); PREPARE stmt FROM @logcountsql; EXECUTE stmt; DEALLOCATE PREPARE stmt; -- show count of edits in the term SELECT userid, username, SUM(edit) as edits FROM ( SELECT ug_user as userid, rev_user_text as username, count(*) as edit FROM user_groups LEFT JOIN revision ON ug_user = rev_user WHERE ug_group = 'sysop' AND rev_user_text NOT REGEXP @exempt_username_pattern AND rev_timestamp BETWEEN @startdate AND @enddate GROUP BY ug_user UNION SELECT ug_user as userid, user_name as username, 0 as edit FROM user_groups JOIN user ON ug_user = user_id WHERE ug_group = 'sysop' AND user_name NOT REGEXP @exempt_username_pattern ) as t GROUP BY userid ORDER BY edits asc; -- show all edits in the term SELECT CONCAT('[[Special:Redirect/user/',rev_user,'|',rev_user,']]') as userid, rev_user_text as username, CONCAT('[[Special:Diff/',rev_id,'|',rev_id,']]') as diff, CONCAT('[[Special:Redirect/page/',rev_page,'|',rev_page,']]') AS pageid, rev_timestamp FROM user_groups LEFT JOIN revision ON ug_user = rev_user WHERE ug_group = 'sysop' AND rev_user_text NOT REGEXP @exempt_username_pattern AND rev_timestamp BETWEEN @startdate AND @enddate ORDER BY rev_user asc, rev_timestamp asc; -- show all sysop actions in the term SET @logsql = CONCAT( "SELECT CONCAT('[[Special:Redirect/logid/',log_id,'|',log_id,']]') as logid, ", "log_type, ", "log_timestamp, ", "CONCAT('[[Special:Redirect/user/',log_user,'|',log_user,']]') as loguserid, ", "log_user_text ", "FROM user_groups LEFT JOIN logging ON ug_user = log_user ", "WHERE ",@logwhere ); PREPARE stmt FROM @logsql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
By running queries you agree to the
Cloud Services Terms of Use
and you irrevocably agree to release your SQL under
CC0 License
.
Submit Query
Stop Query
All SQL code is licensed under
CC0 License
.
Checking query status...