分组和有限查询的随机顺序

时间:2014-06-05 09:40:49

标签: mysql sql

我有一个像

这样的查询
SELECT name,count(*) cnt group by b order by cnt desc limit 10;

所以我会有一个像

这样的项目列表
Name    Count

test     6
test2    4
test6    1
test23   1
test4    1

问题是cnt = 1有1000个结果,我想随机显示它们,否则我对每个查询总是显示或多或少相同。我想要的是具有相同cnt值的行上的随机顺序。它可行吗?

1 个答案:

答案 0 :(得分:4)

您可以在计算后按顺序使用RAND()

SELECT name,count(*) cnt from t
 group by b order by cnt desc ,RAND()
 limit 10;

因此,第一行将按降序排列cnt,然后对于相同的count(cnt)行,将随机排序

Sample demo with provided dataset