簡體   English   中英

Rails MySQL子查詢與算術

[英]Rails MySQL subquery with arithmetic

我有3種型號:

  1. 產品
  2. 每日日志
  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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM