我有一个学生表格列表:
Student SECTION
student1 A
student2 A
student3 A
student4 A
student5 B
student6 B
student7 B
student8 B
我希望随机获得5名学生3名A部分学生和2名B部分学生
案例:如果有2个A部分记录,那么我将只获得4个记录作为结果权利,我能保持整体5个记录,其中包括A部分和A部分。 B如果没有足够的学生。你能建议我一个解决方案
建议一个简单的SQL查询
完成任何一次答案 0 :(得分:2)
SELECT student, section
FROM
( SELECT 1 seq, student, section FROM my_table WHERE section = 'a' ORDER BY RAND() LIMIT 3) x
UNION
( SELECT 2 seq, student, section FROM my_table WHERE section = 'b' )
ORDER
BY seq, RAND() LIMIT 5;