Most Manager Wins
Top 25 managers by Premier League wins, from the Wikipedia managers list joined to match results

Sir Alex Ferguson's 528 wins at Manchester United are 52 clear of second-placed Arsène Wenger (476, all at Arsenal) and more than double David Moyes in third. The list mixes modern dynasties like Pep Guardiola — the only active manager in the top five — with legendary long-serving managers of the 1990s and 2000s. Wenger's 828 games are the most of anyone on the list; no one else has managed 800.

Premier League Wins by Manager
Top 25 by wins · includes permanent and caretaker spells · hover for details
Top 20 Managers
#ManagerGamesWinsDrawsLossesWin %PointsGFGA
1Alex Ferguson81052816811465.217521627703
2Arsène Wenger82847619915357.516271561807
3David Moyes75429019926538.510691016983
4Pep Guardiola380269585370.8865904328
5Harry Redknapp64223616723936.8875819849
6José Mourinho363217846259.8735625305
7Jürgen Klopp334209784762.6705714331
8Sam Allardyce54117814621732.9680636759
9Rafael Benítez3591738610048.2605543350
10Mark Hughes46515712718133.8598568640
11Mauricio Pochettino294150707451520522335
12Mikel Arteta248149485160.1495467241
13Eddie Howe3691408114837.9501547565
14Brendan Rodgers3121397110244.6488529410
15Roy Hodgson41613610217832.7510481586
16Steve Bruce47613313221127.9531496654
17Martin O'Neill36013011511536.1505475449
18Kevin Keegan267116658643.4413409317
19Kenny Dalglish238115606348.3405362239
20David O'Leary259112687943.2404364304
SQL Query Used
-- Managers with the most Premier League wins, aggregated across all their spells
-- (permanent + caretaker), from the Wikipedia managers list joined to match results.
copy (
    select
        rank() over (order by wins desc, win_pct desc, games desc) as rank,
        manager_name,
        wins,
        games,
        draws,
        losses,
        win_pct,
        points,
        goals_for,
        goals_against
    from (
        select
            manager_name,
            count(*) as games,
            sum(is_win) as wins,
            sum(case when result = 'draw' then 1 else 0 end) as draws,
            sum(case when result = 'loss' then 1 else 0 end) as losses,
            round(100.0 * sum(is_win) / count(*), 1) as win_pct,
            sum(points) as points,
            sum(goals_for) as goals_for,
            sum(goals_against) as goals_against
        from "premier_league"."main"."fct_manager_matches"
        where manager_name is not null
        group by manager_name
    )
    order by wins desc, win_pct desc, games desc
)
to 'assets/data/manager_wins.csv' (header, delimiter ',')