, * poll_id * * user_id *. , , , alias1 table user_id, , alias2 table user_id.
, SQL Fiddle.
Script:
CREATE TABLE poll
(
user_id INT NOT NULL
, poll_id INT NOT NULL
, response VARCHAR(10) NOT NULL
);
INSERT INTO poll (user_id, poll_id, response) VALUES
(111, 1, 'yes'),
(111, 2, 'no'),
(111, 3, 'no'),
(222, 1, 'yes'),
(222, 2, 'yes'),
(222, 3, 'yes'),
(333, 1, 'no'),
(333, 2, 'no'),
(333, 3, 'no');
SELECT p1.user_id AS user_1
, p2.user_id AS user_2,
AVG(CASE
WHEN p1.response = p2.response THEN 1
ELSE 0
END) Average_Response
FROM poll p1
, poll p2
WHERE p1.poll_id = p2.poll_id
AND p1.user_id < p2.user_id
GROUP BY p1.user_id
, p2.user_id;
:
USER_1 USER_2 AVERAGE_RESPONSE
------ ------ ----------------
111 222 0.3333
111 333 0.6667
222 333 0
user756519