gpt4 book ai didi

mysql - 每个指定组选择 n 随机行

转载 作者:行者123 更新时间:2023-11-29 17:31:06 26 4
gpt4 key购买 nike

我正在努力寻找以下问题的最佳解决方案。

假设我有一个像这样的表“Table”:

id    name    report_id
1 name1 1
2 name2 3
3 name3 5
4 name1 7
5 name3 8
....................

我想为集合中的每个值选择:('name1', 'name2') 10 个随机唯一行。

当然可以使用union,例如:

(SELECT * FROM Table
WHERE
name='name1'
ORDER BY RAND() LIMIT 10)
UNION
(SELECT * FROM Table
WHERE
name='name2'
ORDER BY RAND() LIMIT 10)

但是,如果我有 100 个唯一名称,我必须为其选择 10 个随机记录 - 这个查询会有点大。

最佳答案

SQLFiddle demo

select ID,NAME,REPORT_ID
from
(
select *, @row:=if(name=@name,@row,0)+1 as rn, @name:=name from
(select *,RAND() as trand from t) t1,
(select @row:=0,@name:='') tm2
order by name,trand
) t2
where rn<=10

关于mysql - 每个指定组选择 n 随机行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50650824/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com