Fork of Rolling number of edits (7 days) on cswiki by Blahma
This query is marked as a draft This query has been published by Blahma.

SQL

AخA
 
use cswiki_p;
set @begin = '20210101000000', @end = '20220101000000';
select date, count(*) as edits from (
  select date(date_add(rev_timestamp, interval 2 hour)) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
  union all
  select date_add(date(date_add(rev_timestamp, interval 2 hour)), interval 1 day) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
  union all
  select date_add(date(date_add(rev_timestamp, interval 2 hour)), interval 2 day) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
  union all
  select date_add(date(date_add(rev_timestamp, interval 2 hour)), interval 3 day) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
  union all
  select date_add(date(date_add(rev_timestamp, interval 2 hour)), interval 4 day) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
  union all
  select date_add(date(date_add(rev_timestamp, interval 2 hour)), interval 5 day) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
  union all
  select date_add(date(date_add(rev_timestamp, interval 2 hour)), interval 6 day) as date from revision left join actor on rev_actor = actor_id left join user_groups on actor_user = ug_user and ug_group = 'bot' where ug_user is null and rev_timestamp between 0+date_sub(date_sub(@begin, interval 2 hour), interval 6 day) and 0+date_sub(date_sub(@end, interval 2 hour), interval 1 second)
) as aweek group by date having date between date(@begin) and date_sub(date(@end), interval 1 day) order by date;
By running queries you agree to the Cloud Services Terms of Use and you irrevocably agree to release your SQL under CC0 License.
All SQL code is licensed under CC0 License.

Checking query status...