これらのフィールドを含むこれらのテーブルを想定します。
歴史:
postID, viewerID
投稿:
postID, posterID
今このクエリ:
SELECT postID FROM history
WHERE postID IN (SELECT postID FROM Posts WHERE posterID IN (10,20,30)
AND viewerID=50
ビューア 50 が表示したポスター 10、20、および 30 のすべての postID を返します。
私が求めているのは、posterID ごとの投稿の結果数に応じた「グループ化」です。
たとえば、現在説明されているクエリの結果は次のようになります。
100,200,300,300,300,100,400, 700, 500
最初の 7 つの結果がポスター 10 からのもので、最後の 2 つがポスター 20 からのものであるとしましょう。したがって、次の結果が必要です。
posterID viewsNum
10 7
20 2
私のSQLレベルは中級なので、これを達成する方法がすぐにはわかりません。内部に「単純な」答えが隠れている場合は申し訳ありません:)