SELECT * FROM ( select * from `my_table` order by id asc ) as my_table_tmp group by cat_id order by id desc
这种 SQL,在 active record 中如何处理了?
MyTable.find_by_sql <<-SQL SELECT * FROM (SELECT * FROM `my_table` ORDER BY id ASC) AS my_table_tmp GROUP BY cat_id ORDER BY id DESC SQL
楼主说话好像有以“了”结尾的习惯,可能你是无意,但听起来是不太有礼貌。
@hooopo 这种方式虽然直接,可是我还需要把结果跟其它的 scope 方法联合起来使用,跟 kamirani 分页结合起来用,会报错
order by 在 group by 之前,可以使用 calculation 函数,类似于 max 之类的
# 一个思路,未验证 select max(id) as mid from `my_table` group by cat_id order by mid desc;