我有表像下面如何获得两列的独特组合?
member follower
A B
B C
C D
E A
B A
B E
D E
在该上述数据A - B,B - 阿具有相同的关系..我需要唯一的行或者A - B或B - 甲
输出应该是这样的低于
member follower
A B
B C
C D
E A
B E
D E
我已经解决了,但我只是想知道我的逻辑是否合适。
我有表像下面如何获得两列的独特组合?
member follower
A B
B C
C D
E A
B A
B E
D E
在该上述数据A - B,B - 阿具有相同的关系..我需要唯一的行或者A - B或B - 甲
输出应该是这样的低于
member follower
A B
B C
C D
E A
B E
D E
我已经解决了,但我只是想知道我的逻辑是否合适。
这是你需要的所有查询:
SELECT DISTINCT LEAST(member,follower) member_1
, GREATEST(member,follower) member_2
FROM my_table;
剩下的就是噪音。
一种可能的方式是这样的:
SELECT greatest(t.member,t.follower) as member1,
least(t.member,t.follower) as member2
FROM YourTable t
GROUP BY
greatest(t.member,t.follower) ,
least(t.member,t.follower)
非常感谢你...... –
这个group by是为了不同的值,没有group by - 会有重复的(我也可以使用不同的,但它有什么关系?)@Strawberry。虽然我同意删除第一个。 – sagi
这个论坛里充斥着数千个错误地使用GROUP BY子句的帖子。它从上面提供的看起来无害的陈述开始,以文盲大屠杀结束。所以,'有什么关系?'你告诉我。 – Strawberry
试着这么做:
SELECT member, follower
FROM yourtable
WHERE (SELECT COUNT(*) FROM yourtable WHERE CONCAT(member, follower) = REVERSE(CONCAT(member, follower))) <= 1
然后添加您的查询。 –
在此处显示您的查询以查看您的评估逻辑。 – gaurav