【发布时间】:2013-11-06 09:20:00
【问题描述】:
我需要使用两个选项进行查询:第一个 - 选择 DISTINCT ON,第二个 - 排序(和其他字段排序)。顺便说一句,不工作
在一个 sql 论坛我找到了解决方案
WITH d AS (
SELECT DISTINCT ON ({Dlist}) {slist}
FROM {flist}
....
)
SELECT * FROM d ORDER BY {order fields}
那么,我怎样才能通过 ActiveRecord 方法做到这一点并取回 ActiveRecord::Relation
我的完整查询看起来是这样的:
WITH d AS (
SELECT DISTINCT ON(item_info_id, volume) items.item_info_id, items.volume, items.*
FROM "items" INNER JOIN "item_info" ON "item_info"."id" = "items"."item_info_id" WHERE "items"."type" IN ('Product')
AND "items"."published" = 't'
AND ("items"."item_info_id" IS NOT NULL)
AND ("items"."price" BETWEEN 2 AND 823489)\
)
SELECT * FROM d ORDER_BY 'price'
【问题讨论】:
-
你能给我们展示一个有效的mysql查询示例吗,我的意思是完整的查询
-
当然。查看完整的 postgresql 查询。我在 activerecord 中需要这样的东西,它将返回 ActiveRecord::Relation
-
顺便说一句,你想描述一下这个查询的输出,就好像你在告诉你的产品经理一样。您知道需要花费一些时间来了解这是做什么的。
标签: sql ruby-on-rails-3 postgresql activerecord