0
我有以下語句返回10個最高項目。使用ActiveRecord按字母順序對10個最高項目進行排序
Timesheet.joins(:project).select('projects.name as name, SUM(value) AS Minutes').group('projects.name').order('Minutes DESC').limit(10)
如何按字母順序排列它們?我試圖在聲明後面放置.order('name'),但這不起作用。
你試過用「sort_by(&:name)」結束這個嗎?它不會在查詢中排序,而是使用ruby Enumerable#sort_by排序。 (對不起,沒有在我的手機鍵盤上打勾) – engineersmnky 2014-09-20 01:20:25
Try:'Timesheet.joins(:project).select('projects.name as project_name,SUM(value)AS minutes')。group('projects.name')。order (:project_name =>:asc,:minutes =>:desc).limit(10)' – Surya 2014-09-20 06:14:36
@engineersmnky很好,如果你把它作爲答案添加,我會將它標記爲這樣。 Surya不起作用,因爲它會產生一個查詢,不會按照價值取10個最高項目,而只是按字母順序排列的前10個項目。 – rept 2014-09-20 09:52:19