gpt4 book ai didi

sql - Postgres Rails 选择不同的顺序

转载 作者:行者123 更新时间:2023-11-29 11:13:42 25 4
gpt4 key购买 nike

这似乎比它应该的更难:

我希望能够按复制计数对表格进行排序,然后仅选择具有唯一标题的事件,并将该查询限制为前 99 个。

 Event.order("copy_count DESC").select("DISTINCT ON (events.title) *").limit(99)

这会引发错误:

ActiveRecord::StatementInvalid: PG::Error: ERROR:  SELECT DISTINCT ON expressions must match initial ORDER BY expressions

这表明我需要将 copy_count 添加到 DISTINCT ON,但这也只会拉回可能相同的唯一 copy_count 记录!

注意:copy_count 的顺序必须先发生。

谢谢

最佳答案

对于纯 SQL,它看起来像:

SELECT *
FROM (SELECT DISTINCT ON (events.title) *
FROM events
ORDER BY events.title, events.copy_count DESC) top_titles
ORDER BY events.copy_count DESC
LIMIT 99

但我不知道,如何在 RoR 中写入它。

关于sql - Postgres Rails 选择不同的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14229291/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com