sql >> Database >  >> RDS >> Mysql

Vraag om top 2 en 3 e records van een tabel te krijgen

Je bent redelijk dichtbij:

(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();

De subquery's gebruiken order by rand() om willekeurige studenten te krijgen met elke graad. De buitenste order by rand() verdeelt de vijf studenten willekeurig.

Opmerking:dit is de eenvoudigste manier om te bereiken wat u wilt. Als de students tafel zelfs redelijk groot is en prestatie een probleem is, zijn er alternatieve oplossingen.



  1. Waarom is het verbinden met de MySQL-server zo traag?

  2. Ik wil de CASE-instructie gebruiken om enkele records in SQL Server 2005 bij te werken

  3. Veroorzaakt door:android.database.sqlite.SQLiteException:geen dergelijke tabel:(code 1) Android

  4. Waarom krijg ik Procedure verwacht parameter '@statement' van het type 'ntext/nchar/nvarchar'. wanneer ik sp_executesql probeer te gebruiken?