0
もし私が(実際のテーブルには、実際には約2万行は非常に巨大である)は、次のMySQLのテーブルを持っている:mysqlの選択数を上回る3
----------------------------
userId | artistId | trackId
----------------------------
user1 | artist1 | track1
-------|----------|--------
user1 | artist1 | track1
-------|----------|--------
user1 | artist1 | track1
-------|----------|--------
user2 | artist1 | track1
-------|----------|--------
user2 | artist2 | track2
-------|----------|--------
user2 | artist2 | track2
-------|----------|--------
.... | .... | ....
私がしたいこと:それぞれのためにユーザは、3つ以上の異なるトラック(すなわち、同じアーティストの3つのトラック)をユーザが聴いたアーティストを選択する。これは、この選択をアーティストのユーザーの好みとして考慮する必要があるためです。たとえば、ユーザーがアーティストの1〜2つのトラックだけを聞いた場合、私はそれを「好み/好み」と見なしたくありません。 は、ここで私が書いたクエリですが、私はこれが正しいかどうかを確認していない:
select p.userId, p.artistId, p.trackId
from lastfm_part2 p
join
(select userId, artistId, trackId
from lastfm_part2
group by userId, artistId, trackId
having count(trackId) > 3) as m
on m.userId = p.userId and m.artistId = p.artistId and p.trackID = m.trackId
PS。重複しているように見えるかもしれませんが(同じユーザー、同じトラック、同じアーティスト)、すべての行を返す必要がありますが、実際には異なるタイムスタンプに関連しています。 このクエリが正しいかどうかわかるように助けてくれてありがとう。私は、Oracleでそれをテスト
おかげ
これはANSI SQLなので、同じ構文です。 – sagi
回答ありがとうございますが、すべての行が必要です(同じユーザー、同じアーティスト、同じトラックのように見える行がいくつかありますが、異なるタイムスタンプに関連しています) – mOna
私は自分の質問を編集しました。 – mOna