X-Git-Url: https://git.xonotic.org/?a=blobdiff_plain;f=scripts%2Frefresh_active_servers_mv.sql;h=05bdf7ba6d96e7a400d9396d1317b8366ac81960;hb=13c3dbc62c09d3fc50a54c97b2f876bf585450ce;hp=219a94d82bcfbbe6992b9e3eed65c9ed70d9f49c;hpb=8d61f30b9b3743a6244da2dac31b5ba4eb84d6b3;p=xonotic%2Fxonstatdb.git diff --git a/scripts/refresh_active_servers_mv.sql b/scripts/refresh_active_servers_mv.sql index 219a94d..05bdf7b 100644 --- a/scripts/refresh_active_servers_mv.sql +++ b/scripts/refresh_active_servers_mv.sql @@ -1,9 +1,18 @@ -begin; +do $$ +declare + cutoff timestamp := now() at time zone 'UTC' - interval '1 week'; +begin delete from active_servers_mv; insert into active_servers_mv - select row_number() over(order by count(1) desc) sort_order, s.server_id, s.name, count(1) games - from servers s join games g on s.server_id = g.server_id - where g.create_dt >= now() at time zone 'UTC' - interval '1 week' - group by 2, 3; + select row_number() over (order by sum(least(g.duration, pgs.alivetime)) desc) sort_order, + s.server_id, s.name, sum(least(g.duration, pgs.alivetime)) play_time + from servers s join games g on g.server_id = s.server_id + join player_game_stats pgs on g.game_id = pgs.game_id + where pgs.player_id > 1 + and g.create_dt > cutoff + and pgs.create_dt > cutoff + group by s.server_id, s.name + order by 1; end; +$$