Adr*_*cha 2 sql activerecord ruby-on-rails subquery ruby-on-rails-3
我正在尝试从另一个查询中选择一些数据.SQL将如下所示:
SELECT user_id, rank FROM
(SELECT user_id, MAX(created_at) as latest_solution, COUNT(*) AS solved,
rank() OVER (ORDER by COUNT(*) desc) AS rank FROM submissions group by user_id)
as leaderboard WHERE leaderboard.user_id = xx
Run Code Online (Sandbox Code Playgroud)
但是我在尝试将其翻译成activerecord语言时遇到了麻烦
我觉得我对子查询没问题
Submission.select('user_id, MAX(created_at) as latest_solution, COUNT(*) as solved, rank() OVER (ORDER BY count(*) desc) as rank').group('user_id')
Run Code Online (Sandbox Code Playgroud)
但我不知道如何使用它作为"表"
我直接去find_by_sql寻找任何不平凡的事情:
Submission.find_by_sql(%q{
select user_id,
rank
from (
select user_id,
max(created_at) as latest_solution,
count(*) AS solved,
rank() over (order by count(*) desc) as rank
from submissions
group by user_id
) as leaderboard
where leaderboard.user_id = :user_id
}, :user_id => 'xx')
Run Code Online (Sandbox Code Playgroud)
在类方法中包装,Submission你应该没问题.
| 归档时间: |
|
| 查看次数: |
1356 次 |
| 最近记录: |