sql >> Database >  >> RDS >> Mysql

Kan er een database-onafhankelijke SQL-query zijn om de bovenste N rijen op te halen?

Om de top 5 scorers uit deze tabel te krijgen:

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

probeer deze SQL:

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

Ik denk dat dit op de meeste plaatsen zou moeten werken.



  1. GROUP BY met MAX(DATUM)

  2. Mysql hoe rijen te retourneren, zelfs als de join-gegevens leeg zijn

  3. Fatale fout:aanroep van een lidfunctie bind_param() op boolean

  4. Gegevens niet opgeslagen met behulp van voorbereide verklaringen