如何在 Presto SQL 中为每个类别提取 3 条随机记录?

How to pull 3 random records per category in Presto SQL?

我有以下 table:

category_id  name
    5         rob
    5         james
    5         kobert
    5         ken
    4         jef
    3         rok

我想编写一个查询,为每个类别随机提供 3 个名称。

例如可能的输出可以是:

category_id  name
    5         rob
    5         james
    5         ken
    4         jef
    3         rok

我知道它应该是这样的:

SELECT category_id, name
FROM(
    SELECT category_id, name, RANDOM() Over (Partition By category_id) rn
    FROM dataset )
WHERE rn<=3

但我找不到执行此操作的正确语法。 它给了我

Not a window function: random

使用row_number():

SELECT category_id, name
FROM (SELECT category_id, name,
             row_number() Over (Partition By category_id order by random()) as seqnum
      FROM dataset
     )
WHERE seqnum <= 3;

也就是说,random() 进入 order by