테이블을 감안할 때 : 나는 다른 말로 결과를SQL을 사용하여 그룹의 발생을 계산하고 두 개의 다른 열을 정렬되지 않은 세트로 처리하는 방법?
green,red: 3
blue,red: 1
을 좀하고 싶습니다
CREATE TABLE foo (
thing_a VARCHAR2(15),
thing_b VARCHAR2(15)
);
그리고 행
INSERT INTO foo (thing_a, thing_b) VALUES 'red', 'green';
INSERT INTO foo (thing_a, thing_b) VALUES 'red', 'green';
INSERT INTO foo (thing_a, thing_b) VALUES 'green', 'red';
INSERT INTO foo (thing_a, thing_b) VALUES 'red', 'blue';
을, 나는 각각의 발생을 계산하고 싶습니다 thing_a와 thing_b의 그룹이지만 "빨강"과 "녹색"을 "녹색"과 "빨강"과 같다고 생각합니다.
나는 "솔루션"오셨습니다 가장 가까운 이것이다 :
greenred
bluered
그래서는 제대로 그룹화,하지만 아무것도 계산하지 않습니다 않습니다 산출
SELECT DISTINCT (
CASE WHEN thing_a < thing_b
THEN thing_a || thing_b
ELSE thing_b || thing_a END
) as thing FROM foo;
.
해결 방법에 대한 제안 사항이 있으십니까?
@AugustLilleaas -이 답변을 "올바른"것으로 표시 했으므로 경험을 고려하면 놀랍습니다. 데이터에'('ab', 'cde')'와'('abcd', 'e')와 같은 정렬되지 않은 다음 집합이 있다고 가정합니다. 이 솔루션은 동일하게 취급합니다. – mathguy
@mathguy, oops ... 내가 뭐라 할 수 있겠 니? a와 b 사이에 쉼표를 쉽게 추가 할 수있는 것처럼 보입니다. 몇 분 후에 다시 확인하십시오. – jarlh
문자열 자체에 쉼표가 포함되어 있으면이 옵션이 작동하지 않습니다. – mathguy