在postgres表中为每个组选择随机行

史蒂夫

我的桌子大概是:

id | category | link | caption | image

我的目标是从表中的每个不同类别中为表中的所有类别获取随机行。然后计划将每一行分配给相应类别的变量。

现在,我正在使用多个类似的SELECT语句:

SELECT link, caption, image FROM table WHERE category='whatever' ORDER BY RANDOM() LIMIT 1

但这似乎很不雅致,并且会导致向DB的访问次数增加,这很昂贵。

我很确定Postgres中的窗口函数可以做到这一点,但是我对它们没有任何经验,我也不完全确定如何使用一个函数来获得我想要的东西。

谢谢你的帮助!

伊戈尔·罗曼琴科(Igor Romanchenko)

尝试类似的方法:

SELECT DISTINCT ON (category) *
FROM table 
ORDER BY category, random();

或具有窗口功能:

SELECT * 
FROM (
SELECT *, row_number() OVER (PARTITION BY category ORDER BY random()) as rn
FROM table ) sub
WHERE rn = 1;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从R中的每个组中随机选择两组行

来自分类Dev

临时表中的UPDATE选择每个组的“最后”行

来自分类Dev

Postgres中半随机行选择的优化

来自分类Dev

在一个特定列或Fata框架中为每个唯一值选择随机行

来自分类Dev

使用Python中的Pandas,为每个组选择最高价值的行

来自分类Dev

MySQL为每个组选择最后一行

来自分类Dev

使用多个AND语句从Postgres表中选择随机行

来自分类Dev

如何从表组中选择所有行以及sql中每个组的联系人计数

来自分类Dev

Postgres-为每个ID选择特定的行

来自分类Dev

在R中为每个组查找重叠的时间表

来自分类Dev

在EntityFramework中的每个组中选择前n行

来自分类Dev

在EntityFramework中的每个组中选择前n行

来自分类Dev

从表中为特定分区随机选择特定结果

来自分类Dev

如何在Spark中为每个组添加缺少的行

来自分类Dev

在df列中为每个组添加“总计”行

来自分类Dev

为每个图像选择随机图像Javascript

来自分类Dev

从表中选择随机行

来自分类Dev

为表中的每个ID选择最新的3条记录

来自分类Dev

从多个表中为每个用户选择数据

来自分类Dev

从CSV中为特定列随机选择一行

来自分类Dev

为每个“组”选择最新的文档

来自分类Dev

从数据表中,每组随机选择一行

来自分类Dev

为表上的每个组选择最后一个时间戳(记录)

来自分类Dev

MySQL为每个分组列值选择一个随机行

来自分类Dev

从mysql表中按组选择行以显示

来自分类Dev

如何使用自定义顺序为每个子组选择第一行?

来自分类Dev

根据多个订单条件为每个组选择第一行

来自分类Dev

如何使用自定义顺序为每个子组选择第一行?

来自分类Dev

从MYSQL的每个组中选择N行

Related 相关文章

热门标签

归档