Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL wählt die obersten Zeilen mit denselben Bedingungswerten aus

Das ist die richtige Lösung, denke ich:Sie brauchen die Unterabfrage, um zu wissen, wie viel Post den 10. Platz in Ihren Top Ten hat. Dann verwenden Sie die äußere Abfrage, um die Benutzer mit fast diesem Postcount zu extrahieren.

SELECT u.username, COUNT(p.id) AS count 
FROM Posts p
JOIN Users u ON u.id = p.author_id
GROUP BY p.author_id 
HAVING COUNT(p.id) >= 
(
    SELECT COUNT(p.id) AS count 
    FROM Posts p
    JOIN Users u ON u.id = p.author_id
    GROUP BY p.author_id 
    ORDER BY count DESC
    LIMIT 9, 1
)
ORDER BY count DESC