【问题标题】:db2 select x random rows for a given iddb2 为给定的 id 选择 x 个随机行
【发布时间】:2016-11-23 16:21:18
【问题描述】:

如果我有两列 - 一个 ID 字段和一个可以取 10 个可能值的分数字段,我如何为每个 ID 选择 5 个随机行?我知道我可以使用以下方法从表中随机选择 5 行:

select *, rand() as idx
from mytable 
order by idx fetch first 5 rows only

但是每个 ID 5 行怎么样?

【问题讨论】:

    标签: sql random db2


    【解决方案1】:

    您可以使用row_number()

    select t.*
    from (select t.*,
                 row_number() over (partition by idx order by rand()) as seqnum
          from mytable t
         ) t
    where seqnum <= 5;
    

    【讨论】:

    • 非常感谢@Gordon Linoff
    猜你喜欢
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多