我有表像下面如何獲得兩列的獨特組合?
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