gpt4 book ai didi

ruby-on-rails - SQL - 按最接近的值排序记录

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

我已经为产品详情创建了一个 API在这个 API 中,我还需要附加类似的产品作为响应。

所以对于类似的产品场景如下1) 价格明智(+10 和 -10)2)然后在分类之后(来自同一类别)

例如我有 ID #30 的产品,价格为 30 美元,类别为“啤酒”所以类似的产品列表将如下所示首先显示所有啤酒类产品,其范围在 30 美元的 +10 和 -10 之间(我的意思是黑白范围 20 到 40)然后附加属于同一类别“啤酒”的其他产品,最接近的价格为 30 美元假设相同类别的产品价格如下10 美元、17 美元、45 美元、42 美元、50 美元

因此产品将按以下方式排序,最接近 30 美元42 美元(42 美元 - 30 美元 = 12 美元)、17 美元(30 美元 - 17 美元 = 13 美元)、45 美元(45 美元 - 30 美元 = 15 美元)、10 美元(30 美元 - 10 美元 = 20 美元)、50 美元(50 美元 - 30 美元 = 20 美元)

对于我在查询下方创建的 +10 -10 范围内的类似产品

similar_price = Product.includes(:sub_category, :brand, :product_type, :category).in_stock.where("(actual_price BETWEEN ? AND ? AND category_id = ? ) ", min_price, max_price, self.category_id)

现在我需要以最接近的价格订购产品。如何使用 rails 中的 postgres 查询解决此问题?

最佳答案

是的,您可以使用简单的订单查询来执行此操作,如下所示

`Product.where("product.category_id = ?", "category_id").order("abs(products.price - #{your_selected_product_price})")`

关于ruby-on-rails - SQL - 按最接近的值排序记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48563576/

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