私はレストランの評価とレビューのデータベースを持っており、各レストランには 1 から約 1000 のレビューがあります。
最初に、コメントに「タコ」という単語が含まれている、評価が最も高い 4 つ以上のレビューを持つレストランを見つけようとしました。以下のコードで動作するようになりました。
select id, count(id) from test where (comment like '%taco%') AND rating >= 3 group by id order by count(id) DESC;
たとえば、レストラン X に「タコス」を含む 4 以上の評価のレビューが 30 件ある場合、その行には「X|30」と表示されます。
次の 2 つの機能を追加したいと考えています。
- 各レストランのレビューの総数をリストします (無条件)。
- 「タコス」を含むすべてのレストランのレビューの平均評価を入力してください。
レストラン X に合計 150 件のレビューがあり、そのうち 30 件が「タコ」を含む 4+ 評価で、これら 30 件のレビューの平均評価が 2.5 である場合、次のようになります。
'X|30|150|2.5|'
この結果を得るにはどうすればよいですか?