说我有以下数据:
id1 id2 data
----------------------
7 8 test1
7 8 test2
8 7 test1
8 7 test2
对于我的需求,id1和id2可以转置,因此这实际上是重复数据。如何只为data
选择id1 / id2的一个组合及其所有唯一值?所以期望的输出是:
7 8 test1
7 8 test2
或
8 7 test1
8 7 test2
哪个无关紧要。
答案 0 :(得分:4)
如果真的所有记录都以这种方式重复并id1!=id2
,这可行吗?
select distinct id1, id2, data from test where id1 < id2
答案 1 :(得分:0)
如果您没有重复记录,则可以执行以下操作:
select distinct (case when id1 < id2 then id1 else id2 end) as idlow,
(case when id1 < id2 then id2 else id1 end) as idhigh,
data
from table t