# Pastebin 6JZ4CE9N WITH release_mbids AS ( SELECT rl.gid AS release_mbid , r.gid AS recording_mbid FROM release rl JOIN medium m ON m.release = rl.id JOIN track t ON t.medium = m.id JOIN recording r ON t.recording = r.id WHERE r.gid IN ('0b778271-1901-472c-95fa-8996535e4c8f') ), release_recordings AS ( SELECT rid.recording_mbid AS src_recording_mbid , rid.release_mbid AS release_mbid , r.gid AS recording_mbid , r.name AS recording_name , r.length AS duration , t.position , m.position as medium_position FROM recording r JOIN track t ON t.recording = r.id JOIN medium m ON t.medium = m.id JOIN release rl ON m.release = rl.id JOIN release_mbids rid ON rl.gid = rid.release_mbid ) SELECT src_recording_mbid , rr.release_mbid , array_agg(jsonb_build_object('recording_mbid', rr.recording_mbid, 'recording_name', rr.recording_name, 'duration', rr.duration, 'position', rr.position, 'medium_position', rr.medium_position)) AS release FROM release_recordings rr GROUP BY src_recording_mbid , rr.release_mbid