select * from a; 
a表 
chengji xueke 
100 语文 
23 数学 
89 英语 
82 英语 
71 数学 
21 英语 
32 语文 
我想得到这样的结果:学科按照 语文 数学 英语循环排列 
chengji xueke 
100 语文 
23 数学 
89 英语 
32 语文 
71 数学 
82 英语 
21 英语 求sql语句

解决方案 »

  1.   

    这个问题不简单哦:
    增加自增字段ID
    SELECT *
    FROM (SELECT A.ID, A.chengji, A.xueke, COUNT(B.ID) AS PX1
    FROM ttn AS A LEFT JOIN ttn AS B ON (A.ID>=B.ID) AND (A.xueke=B.xueke)
    GROUP BY A.ID, A.chengji, A.xueke
    ORDER BY COUNT(B.ID)) AS A1 LEFT JOIN PX ON A1.xueke=PX.ZD
    ORDER BY PX1, PX;
    PX表:
    ZD PX
    语文 1
    数学 2
    英语 3
      

  2.   

    OR
    SELECT A.ID, A.chengji, A.xueke, COUNT(B.ID) AS PX1
    FROM ttn AS A LEFT JOIN ttn AS B ON (A.ID>=B.ID) AND (A.xueke=B.xueke)
    GROUP BY A.ID, A.chengji, A.xueke
    ORDER BY COUNT(B.ID)
    , IF(A.xueke='语文',1,IF(A.xueke='数学',2,3));