SQL 자체 결합을 사용하여 수학의 중복 조합을 표현

소개



SQL에 있어서, 자신은 별로 익숙하지 않은 자기 결합의 향후 도움이 될지도 모르는 테크닉을 소개해 갑니다.

실행 결과는 여기에서 확인할 수 있습니다.

자기 결합을 사용하여 중복 조합을 만듭니다.



중복 조합의 개념은 아래를 참조하십시오.





Schema (MySQL v5.7)



무언가의 일람이라고 생각해 주세요.
CREATE TABLE members (
  id INT NOT NULL PRIMARY KEY auto_increment,
  name TEXT
);

INSERT INTO members VALUES
    (1, 'tanaka'),
    (2, 'okada'),
    (3, 'hiranuma');

이 멤버의 중복 조합을 생각해 봅시다.

이번 사례를 계산하면


_{3}H_{2} = _{4}C_{2} \\
= \frac{4\times3}{2\times1} \\
= 6 \\

6가지의 조합을 생각할 수 있습니다.

Query


SELECT 
   M1.name AS name_1,
   M2.name AS name_2
FROM members M1
INNER JOIN members M2 ON M2.name <= M1.name

문자 코드 순으로 정렬하여 자신(M1)과 동등하거나 그보다 앞에 오는 멤버가 쌍이 됩니다.

Results




name_1
name_2


타나카
타나카

타나카
오카다

오카다
오카다

타나카
히라누마

오카다
히라누마

히라누마
히라누마


중복이 있음을 알 수 있습니다.

조합이므로 순서를 바꾼 쌍은 동일하다고 간주합니다.

참조



59p

출력 100개 노크 실시 중

좋은 웹페이지 즐겨찾기