[英]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.