/*
SELECT track_id, SUM(score)/2
FROM user_track
WHERE user_id IN (
	SELECT user_id
	FROM suser
	WHERE user_name = 'd-kobert'
	OR user_name = 'thilo'
)
GROUP BY track_id
HAVING COUNT(track_id) = 2
ORDER BY SUM(score) DESC;
*/

-- alternative
WITH users AS (
	SELECT *
	FROM ( VALUES

		('d-kobert'), ('thilo')

	) AS _ (user_name)
)
--SELECT track_id, SUM(score) / (SELECT COUNT(*) FROM users) AS score
SELECT track_id, name, artist
FROM track
JOIN (
SELECT track_id
FROM user_track
JOIN suser USING (user_id)
JOIN track USING (track_id)
WHERE suser.user_name IN (SELECT * FROM users)
GROUP BY track_id
HAVING COUNT(track_id) = (SELECT COUNT(*) FROM users)
ORDER BY SUM(score) DESC
) AS _ USING (track_id)
;
