簡體   English   中英

具有多個內部聯接的復雜SQL和帶有rails的計數

[英]Complex SQL with multiple inner join & count with rails

我想知道是否可以像這樣使用Rails Active Record幫助程序編寫非常復雜的SQL(數字稍后將被變量替換):

SELECT 
photographs.id,
(COUNT(distinct comments.id) / 50.0 * 100 * 0.25) + (15 * 0.1) + (COUNT(distinct likes.id) / 100.0 * 100 * 0.05) +(COUNT(distinct likes.id) / COUNT(distinct views.id) * 100 * 0.4) +(COUNT(distinct likes.id) * 2.4  / 100.0  * 0.2) AS FINAL_RANKING
FROM photographs
INNER JOIN comments 
ON photographs.id = comments.photograph_id
INNER JOIN likes 
ON photographs.id = likes.photograph_id
INNER JOIN views 
ON photographs.id = views.photograph_id
GROUP BY photographs.id
ORDER by FINAL_RANKING DESC;

我在Rails doc上找到了更簡單的示例或簡單的多個內部聯接,但沒有計數

Rails在select命令中接受SQL。

請參閱活動記錄查詢界面| 選擇特定字段

這樣的事情應該為您工作:

Photographs.joins(:comments, :likes, :views, :users).where(
"users.id = 1").select("COUNT(whatever)")

無法保證實際運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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