2017-09-16 28 views
0

我有这样我的SQL视图:改写,最大的SQL语句和GROUPBY红宝石

SELECT 
    `reports`.`date` AS `date`, 
    `reports`.`book_title` AS `book_title`, 
    max(
     `reports`.`royalty_type` 
    ) AS `royalty_type`, 
    max(
     `reports`.`avg_list_price` 
    ) AS `avg_list_price` 
FROM 
    `reports` 
GROUP BY 
    `reports`.`date`, 
    `reports`.`book_title`, 
    `reports`.`marketplace` 

据我所知组结果按日期,然后通过BOOK_TITLE然后通过市场,然后选择最大royalty_typeavg_list_price在这个小小组内

我该如何在rails activerecord中重写? 我不知道如何在activerecord的这个小组中选择max。

回答

2

试试这个

Report.group(:date, :book_title, :marketplace).select('date, book_title, MAX(royalty_type) AS royalty_type, MAX(avg_list_price) AS avg_list_price') 
+0

感谢的人!真棒! – user2950593

+0

不客气;) – Ursus