Problemet er matematik med nuller og bestilling med nuller (tjek ind i "NULLER SIDSTE" mulighed for at tilsidesætte standardrækkefølgen, som returnerer nullerne først for en faldende rækkefølge).
I dit tilfælde, med de ydre joinforbindelser, hvis brugeren har et væld af artikelkommentarer, men ingen forumkommentarer, ja, 100 + null =null i Oracle-matematik. Så for at få matematikken til at fungere, skal du lave null=0. Det er her, NVL() kommer ind (og har også den gode bivirkning at eliminere irriterende nulpunkter fra dit resultatsæt)!
SELECT u.id, u.username, (NVL(COUNT(a.id),0) + NVL(COUNT(f.id),0)) AS rank
FROM site_users u
LEFT JOIN site_articles_comments a ON a.user_id = u.id
LEFT JOIN site_forum_comments f ON f.user_id = u.id
GROUP BY u.username, u.id ORDER BY rank DESC LIMIT :l
Jeg kan se du har både MySQL og Oracle i dine tags - ovenstående er til Oracle. Hvis for MYSQL, brug COALESCE(COUNT(),0) i stedet.