gpt4 book ai didi

mysql - Rails 中的嵌套查询不使用 find_by_sql

转载 作者:行者123 更新时间:2023-11-29 12:10:52 26 4
gpt4 key购买 nike

我的sql查询是

SELECT MAX(sale_money)
FROM (
SELECT SUM(sale_money) sale_money
FROM sales
WHERE MONTH(created_at) = 5
GROUP BY user_id
) t

我在 Rails 4 代码中编写子查询:

record = Sale.select("SUM(sale_money) AS sale_money").where("MONTH(created_at) = 5").group(:user_id)

有人可以教我根据 record 查询 max_record 或其他查询,除了 max_record = Sale.find_by_sql(my_raw_sql)max_record = Sale.where(my_raw_sql)

最佳答案

是的,使用 Activerecord form 也可以完成同样的操作方法。

Sale.from(Sale.select("SUM(sale_money) AS sale_money")
.where("MONTH(created_at) = 5")
.group(:user_id), :t
)
.select("MAX(t.sale_money) as sale_money")

但是,你可以这样做:

Sale.select("SUM(sale_money)")
.where("MONTH(created_at) = 5")
.group(:user_id)
.order("SUM(sale_money) DESC")
.limit(1)

上面的查询不需要 2 个SELECT 查询。

关于mysql - Rails 中的嵌套查询不使用 find_by_sql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722637/

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