sql >> Databasteknik >  >> RDS >> Mysql

Fråga för att få topp 2 och 3:e poster från en tabell

Du är ganska nära:

(select * from student where SECTION = 'A' order by rand() LIMIT 3
) union all
(select * from student where SECTION = 'B' order by rand() LIMIT 2
)
order by rand();

Underfrågorna använder order by rand() att få slumpmässiga elever med varje betyg. Den yttre order by rand() randomiserar de fem eleverna.

Obs:Detta är det enklaste sättet att åstadkomma det du vill. Om students bordet är till och med måttligt stort och prestanda är ett problem, det finns alternativa lösningar.



  1. Skapa ett SQL Server Agent Job i Azure Data Studio

  2. Lagrar statistiska data, behöver jag DECIMAL, FLOAT eller DOUBLE?

  3. Ändra SYS-lösenord i RAC

  4. MySQL:ALTER IGNORE TABLE ger brott mot integritetsbegränsningar