[英]Rails MySQL subquery with arithmetic
我有3種型號:
這些表如下所示:
Products
id
,
Daily Logs
id | product_id | price
,
Clicks
id | product_id | daily_log_id
為了進行報告,我希望獲得所有產生的費用超過x費用(基於每次點擊價格)的產品。
在Ruby中,代碼可能看起來像
products.select do | p |
cost = 0
p.daily_logs.each do | dlog |
cost += dlog.clicks.count * dlog.price
end
cost > x ? true : false
end
如何為mysql寫類似的查詢?
謝謝!
我認為這是您要尋找的:
SELECT dl.product_id AS `product_id`, COUNT(c.id) AS `total_clicks`, SUM(dl.price) AS `total_price`
FROM daily_logs AS dl
INNER JOIN clicks AS c on dl.id = c.daily_log_id
WHERE `total_price` > ?
GROUP BY `product_id`
請注意,我沒有加入產品表,因為它只有一個id字段,該字段也可以在daily_logs表中使用。 如果products表實際上包含更多具有所需信息的字段,那么您也可以將該表加入並選擇所需的字段。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.