を使用して全体を取得できますが、上位5つの結果のみを取得するためには、目的の結果でWITH ROLLUP
はうまく機能しません。(編集:)コメントで説明されているように、順序付けでも機能しません。LIMIT 5
UNION
したがって、上位5つだけでなく、すべての結果をフェッチしてアプリケーションで並べ替えるか、@RedFilterが提案する方法を使用してサーバー側でマージされた2つの異なるクエリを使用する必要があります。しかし、2つの別々のクエリを実行する場合、後で上位5つから合計を分割するのは手間がかかりすぎてほとんど利益がないため、私は個人的にクライアントアプリケーションとは別にそれぞれを発行したいと思います。
すべての結果を取得するには、次を使用します
select entertainer, count(*)
from final_results
group by entertainer with rollup
使用する2つの異なるフェッチを実行するには
select entertainer, count(*)
from final_results
group by entertainer
order by count(*) desc
limit 5
と
select count(*)
from final_results
両方を1つのユニオンにしたい場合は、次のように実行できます。
(select 1 as unionPart, entertainer, count(*) as count
from final_results
group by entertainer
order by count(*) desc
limit 5)
union all
(select 2 as unionPart, 'Total count', count(*) as count
from final_results)
order by unionPart asc, count desc