sql >> Databasteknik >  >> RDS >> Mysql

Kan det finnas en databasagnostisk SQL-fråga för att hämta de N översta raderna?

För att få de 5 bästa målskyttarna från denna tabell:

CREATE TABLE people
             (id      int, 
              name    string, 
              score   int)

prova denna SQL:

SELECT id, 
       name, 
       score
FROM   people  p
WHERE  (SELECT COUNT(*) 
        FROM   people p2
        WHERE  p2.score  > p.score 
       ) <=4 

Jag tror att detta borde fungera på de flesta ställen.



  1. Exportera poster i excel-fil

  2. Använder ActiveRecord för att uppnå komplexa relationer i Rails

  3. Mysql-valsfråga baserad på flera användarinmatningar

  4. FLOSS UK vårkonferens