如何找到多个列值之间的差异

时间:2019-03-27 18:43:29

标签: sql postgresql

我有一张表格,其中包含多个问题和答案。多个用户给出了答案。我想查找用户之间的问题或答案不同的问题集ID。例如1个问题集没有不同,因为所有用户给出的问题和答案的相同组合不同,但问题集2有所不同。

enter image description here

1 个答案:

答案 0 :(得分:0)

您是否尝试过EXISTS功能?

SELECT DISTINCT questionset
FROM table_name tab1 
WHERE (NOT EXISTS (SELECT 1
        FROM table_name tab2
        WHERE tab1.questionset = tab2.questionset
        AND tab1.question = tab2.question
        AND tab1.answer = tab2.answer
        AND tab1.user_id <> tab2.user_id )
OR NOT EXISTS (SELECT 1
        FROM table_name tab3
        WHERE tab1.questionset = tab3.questionset
        AND tab1.question = tab3.question 
        AND tab1.user_id <> tab3.user_id )) ;