上位 5 つの結果を表示し、残りをCakephp 2の「その他」にグループ化するにはどうすればよいですか? フィールド「ページ」を含む「訪問」テーブルがある場合、たとえば100行(さらに多くなる)があり、結果が次のようになる必要があります。
Other 40
/ 20
/about 15
/contact 10
/welcome 10
/test 5
これは、通常の Mysql で行う 1 つの方法です。
SELECT case when v2.page is not null then v1.page else 'other' end AS viewpage, COUNT(*) AS count
FROM visits v1
LEFT JOIN
(
SELECT page, COUNT(*) as pcount
FROM visits
GROUP BY page
ORDER BY pcount DESC
LIMIT 5
) v2 on v1.page = v2.page
GROUP BY viewpage
ORDER BY count DESC
しかし、Cakephp 2でこれを行う方法は? Mysqlクエリを作成すれば簡単だと思いました...