我需要从表中选择一个随机项,其值在该表中出现三次以上。
我已经达到了“SELECT userid FROM breadscores ORDER BY rand()LIMIT 1”,但我不确定将什么作为where_condition。
我还想确保它的加权均匀,无论条目发生的次数多于三次。我是否必须使用某种子查询?
答案 0 :(得分:5)
SELECT userid FROM breadscores GROUP BY userid HAVING COUNT(*) > 3 ORDER BY RAND() LIMIT 1
应该工作。
答案 1 :(得分:1)
您需要添加limit 1
(我将其关闭,以便您可以看到select
实际正在运行;)
SELECT counts.userid
FROM (SELECT count(*) ucount,userid
FROM breadscores
GROUP BY userid) counts
WHERE counts.ucount>3
ORDER BY rand()