Estás bastante cerca:
(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();
Las subconsultas usan order by rand()
para obtener estudiantes al azar con cada grado. El order by rand()
aleatoriza a los cinco estudiantes.
Nota:Esta es la forma más sencilla de lograr lo que desea. Si los students
la tabla es incluso moderadamente grande y el rendimiento es un problema, existen soluciones alternativas.