[英]SQL: select rows which are unique on specific columns
我有一個問題表與方案
id1 question1 id2 question2
1123 q1 2 q2
1123 q1 3 q3
1123 q1 1231 q142
2431 q12 1231 q142
(ID不是增量的,可以認為是隨機的)
我想選擇在id1和id2中都唯一的元組,例如,對於上面的示例,所需的輸出可能是:
id1 question1 id2 question2
1123 q1 2 q2
2431 q12 1231 q142
先感謝您。
使用嵌套查詢。
SELECT *
FROM (SELECT *
FROM yourTable
GROUP BY id1) AS x
GROUP BY id2
但是,這將如何進行分組是不可預測的。 如果子查詢選擇
id1 id2
1123 1231
2431 1231
那么最終結果將是:
id1 id2
1123 1231
要么
id1 id2
2431 1231
我不確定如何更改它,以便它以最可能的組合產生結果。
您也可以使用排名
SELECT id1,
question1,
id2,
question2
FROM (SELECT CASE id1
WHEN @curType
THEN @curRow := @curRow + 1
ELSE @curRow := 1 AND @curType := id1
END rank,
id1,
question1,
id2,
question2
FROM q,
(SELECT @curRow := 0, @curType := '') r
ORDER BY id1, id2
) t
WHERE rank = 1
結果
rank id1 id2
1 1123 2
1 2431 1231
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.