sql去重问题,字段互换怎么去重?

有这样一些记录

假设字段有A,B,C

对应的记录内容是:

张三,11,22

张三,22,11

张三,33,44

张三,44,33

这4条其实是2条记录,其中A列的值是相等的,B和C列的值相互互换的算一条记录,怎么去重?

SELECT 
	s1.`name`,s1.score1,s1.score2
FROM 
	scores AS s1
LEFT  JOIN scores AS s2
ON s1.score1=s2.score2 AND s1.score2=s2.score1
WHERE s2.id=s1.id-1 ;

仅供参考,互相学习

如果这四条数据是两条数据,那么b字段和c字段区分开没有意义吧,两个字段算一个字段.有实际的业务场景吗

 

获取值,转成set集合,提供一个思路试试

seleCt distinCt A,B,C from t as t1
left join t as t2 on t2.B=t1.C And t2.C=t1.B
where t2.A is null