select content.ID, player.FACTION, count(*) as SIDE_COUNT
from wesnothd_game_info game
inner join wesnothd_game_player_info player
   on game.INSTANCE_UUID = player.INSTANCE_UUID
  and game.GAME_ID = player.GAME_ID
  and player.USER_ID != -1
  and player.FACTION != ''
inner join wesnothd_game_content_info content
   on game.INSTANCE_UUID = content.INSTANCE_UUID
  and game.GAME_ID = content.GAME_ID
  and content.TYPE = 'era'
where YEAR(game.START_TIME) = YEAR(CURRENT_DATE - INTERVAL 1 MONTH)
  and MONTH(game.START_TIME) = MONTH(CURRENT_DATE - INTERVAL 1 MONTH)
  and game.END_TIME is not NULL
  and TIMESTAMPDIFF(MINUTE, game.START_TIME, game.END_TIME) > 5
group by content.ID, player.FACTION
order by count(*) desc
