获得2种不同极限条件的学生

时间:2016-12-16 10:21:43

标签: mysql sql database

我有一个学生表格列表:

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查询

完成任何一次

1 个答案:

答案 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;