次の表があります。
レビュー ID | Author_id | 投稿時間 -------------------------------------- R1 | U1 | ... R2 | U2 R3 | U2 R9 | U7 R11 | U7 R12 | U7 R13 | U8 R14 | U10
私の質問は、U7 を入手したいというものです。私は次のようにしてみました:
select author_id
from posted_reviews_tab
group by author_id
having (count(author_id)) in (
select max(count(author_id))
from posted_reviews_tab
where reviewid in (
select w.reviews.reviewid
from wall_tab w
where w.shopid = 'S9'
)
group by author_id
);
shop s9 のウォールには、R11、R12、R13、R14 の 4 件のレビューがあります。上の表は、どのユーザーがどのレビューを投稿したかを示しています。壁のテーブルから、どのお店の壁にどのレビューが書かれているかが分かります。したがって、すべてのレビューを取得したら、最も多くのレビューを投稿したユーザー (U7) を見つけたいと思います。上記のクエリでは、最大カウントが 2 であるため、U2 が返されます (2 becoz u7 post R11 および R12 )回避策を提案しますか?