gpt4 book ai didi

mysql - 如何根据另一张表中的每一行随机选择一张表中的行?

转载 作者:行者123 更新时间:2023-11-30 21:44:12 24 4
gpt4 key购买 nike

有两个表:

崩溃traffic_flow

crash 表具有crash_datetime 和相应的检测器ID 等属性。

探测器记录的

traffic_flow表有属性date,time,detector_ID,自增id和traffic流量参数。

现在我愿意为崩溃中的每一行分别在 traffic_flow 中随机选择 10 行,并将它们插入到新表中。

下面是试用版:

select traffic_flow.id
from traffic_flow,crash
where traffic_flow.date=crash.date and traffic_flow.ID=crash.ID
order by rand()
limit 10;

但是这条sql语句对所有crash记录一共选择了10行,而不是crash中的每一行,所以不能满足我的要求。你能帮我修改声明吗?

最佳答案

在MySQL中,最简单的方法是使用变量枚举每次崩溃的行数:

select *
from (select ct.*,
(@rn := if(@ct = id, @rn + 1,
if(@ct := id, 1, 1)
)
) as rn
from (select c.*, tf.id as tf_id
from traffic_flow tf join
crash c
on tf.date = c.date and tf.ID = c.ID
order by c.id, rand()
) ct cross join
(select @cid := -1, @rn := 0) params
)
where rn <= 10;

关于mysql - 如何根据另一张表中的每一行随机选择一张表中的行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50211475/

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