# Pastebin xkpGcisP WITH mbid_similarity AS ( SELECT recording_mbid AS mbid_0 , LEAD(recording_mbid, 1) OVER row_next AS mbid_1 , (artist_credit_id != LEAD(artist_credit_id, 1) OVER row_next AND recording_mbid != LEAD(recording_mbid, 1) OVER row_next) AS similar FROM listen WHERE recording_mbid IS NOT NULL WINDOW row_next AS (PARTITION BY user_name ORDER BY listened_at) ) SELECT mbid_0 , mbid_1 , SUM(CASE WHEN similar THEN 1 ELSE 0 END) AS similarity FROM mbid_similarity WHERE mbid_0 IS NOT NULL AND mbid_1 IS NOT NULL GROUP BY mbid_0, mbid_1