MsSQL   发布时间:2022-05-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了sql – 为postgres表中的每个组选择随机行大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一张大致的表格: @H_696_2@id | category | link | caption | image

我的目标是从表中的每个不同类别中获取表中所有类别的随机行.计划是将每一行分配给其各自类别的变量.

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

SELECT链接,标题,图像FROM表WHERE category =’@R_675_10112@ever’ORDER BY RANDOM()LIMIT 1

但这看起来不那么优雅,并且创建了更多的数据库,这是昂贵的.

我很确定有一种方法可以在Postgres中使用窗口函数来实现这一点,但是我对它们没有经验,我不完全确定如何使用它来获得我想要的东西.

谢谢你的帮助!

@H_419_17@解决方法
尝试以下方法: @H_696_2@SELECT disTinCT ON (category) * FROM table ORDER BY category,random();

或者使用窗口功能:

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

大佬总结

以上是大佬教程为你收集整理的sql – 为postgres表中的每个组选择随机行全部内容,希望文章能够帮你解决sql – 为postgres表中的每个组选择随机行所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:标题