Mysql的查询结果排序有关问题

Mysql的查询结果排序问题。

我有一个表,初始的查询结果有几千条数据,现在想取其中的20条。但是要求是这20条中某个字段尽量不重复(比方说班级成员表):初始查询结果按照班级来排序是这样的

id name class

1 a class01

2 b class01

3 aa class01

4 bb class02

5 cc class02

6 dd class02

7 ee class03

….假设每个班级都有几百条数据,有n个班(这个班级数目是不固定的,没查询之前我也不会晓得是几),现在要抽出其中20条,要求尽量把20条数据分散从各个班抽,例如有20个或以上班的话,每个班一条,有小于20个班的话,每个班抽一条之后再按顺序从各个班来抽,有点类似与哈希表的样子。请问这个结果应该如何用sql语句实现?结贴率100%,希望大家积极帮忙。



修改:

假设ID唯一

select * from (

select a.id,a.name,a.class,count(*) as gs from tt a left join tt b

on a.class=b.class and a.id<=b.id group by a.id,a.name,a.class) a1

order by gs,class




要不,用代码生成几个 union 语句吧。代码事件查出有几个 class,然后分配每个 class 查多少条数据,组合成 union 查询。

Mysql的查询结果排序有关问题

相关文章:

你感兴趣的文章:

标签云: