すべてのドキュメントに目を通しましたが、このクエリを Sequel にまとめる際に問題が発生しています。
select a.*, IFNULL(b.cnt, 0) as cnt FROM a LEFT OUTER JOIN (select a_id, count(*) as cnt from b group by a_id) as b ON b.a_id = a.id ORDER BY cnt
テーブル A を製品と考え、テーブル B は A が購入されたことを示すレコードです。
これまでのところ、私は持っています:
A.left_outer_join(B.group_and_count(:a_id), a_id: :id).order(:count)
基本的に、テーブル B をグループ化してカウントし、それを A と結合したいだけですが、B には必ずしも A のレコードがなく、B の番号で並べ替えているため、値をデフォルトにする必要があります。