gpt4 book ai didi

sql - Redshift 选择随机记录但避免重复

转载 作者:行者123 更新时间:2023-12-04 03:00:29 25 4
gpt4 key购买 nike

我在 Redshift 中有一个表,其中有样本 ID 71082 的以下记录:

id       trm_num        start_time
71082 PCMAMGA759551 2012-05-02 09:41:54
71082 PCMAMGA759551 2015-06-02 13:23:39
71082 PCMAMGA759551 2015-09-03 13:23:39
71082 PCMAMGA759551 2015-12-11 07:25:25
71082 PCMAMGA759551 2017-01-10 09:03:22

我只想为每个 ID 选择 1 个随机记录。为此,我尝试了查询:

select * from mytable where id=71082 order by random limit 1;

它为我获取了随机记录。但该表有 1000 多个不同的 ID。我如何修改我对其他 ID 的查询?

最佳答案

使用窗口函数 ROW_NUMBER,每个 ID 随机排序:

select id, trm_num, start_time
from
(
select
id, trm_num, start_time,
row_number() over (partition by id order by random()) as rn
from mytable
) numbered
where rn = 1;

关于sql - Redshift 选择随机记录但避免重复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49670057/

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