gpt4 book ai didi

ruby-on-rails - 在 PostgreSQL 中使用 DISTINCT 选择列

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

我正在从数据库中查询公交车站,我希望它只返回每条公交线路/方向的 1 个站点。这个查询就是这样做的:

Stop.select("DISTINCT line_id, direction")

除了这两个属性之外它不​​会给我任何其他属性。除了 line_id 之外,我尝试了几个其他查询让它返回 iddirection 字段(理想情况下它会返回所有列),没有运气:

Stop.select("DISTINCT line_id, direction, id")

Stop.select("DISTINCT(line_id || '-' || direction), id")

在这两种情况下,查询都会丢失其 distinct 子句并返回所有行。

一些很棒的家伙帮助了我并建议使用子查询让它返回所有的 ids:

Stop.find_by_sql("SELECT DISTINCT a1.line_id, a1.direction, (SELECT a2.id from stops a2 where a2.line_id = a1.line_id AND a2.direction = a1.direction ORDER BY a2.id ASC LIMIT 1) as id FROM stops a1

然后我可以提取所有 ID 并执行第二次查询以获取每个站点的完整属性。

有没有一种方法可以将所有内容都包含在一个查询中并让它返回所有属性?

最佳答案

Stop.select("DISTINCT ON (line_id, direction) *")

关于ruby-on-rails - 在 PostgreSQL 中使用 DISTINCT 选择列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5009297/

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