我有一个大致如下的表格:
id | category | link | caption | image
我的目标是从表中的每个不同类别中获取一行随机数据,对于表中的所有类别都要这样做。计划是将每行分配给相应类别的变量。
目前我正在使用多个类似于以下的SELECT语句:
SELECT link, caption, image FROM table
WHERE category='whatever'
ORDER BY RANDOM() LIMIT 1`
但是这似乎不够优雅,并且会增加到数据库的访问次数,这是很昂贵的。
我相信在Postgres中有一种使用窗口函数的方式可以完成这个操作,但是我没有使用过,也不确定如何使用窗口函数来得到我想要的结果。