SQL의 여러 열에서 고유한 조합 계산

Sqlui Yeoleo Yeol Eseo Goyuhan Johab Gyesan



SQL 데이터베이스에서 작업할 때 주어진 테이블에서 고유한 값을 찾고 중복 값을 제거해야 하는 인스턴스가 발생할 수 있습니다. 대부분의 경우 우리는 주로 고유한 값을 원하는 열을 지정하기 위해 distinct 절을 사용합니다.

하지만 여러 열의 값이 고유하고 중복이 없는지 확인하려면 어떻게 해야 할까요?







이 자습서에서는 SQL 기능을 사용하여 두 개 이상의 열을 선택하고 해당 값이 고유한지 확인하는 방법을 배웁니다.



문제:

여러 열이 있는 테이블이 있고 이러한 열에서 고유한 값 조합의 수를 계산하려고 한다고 가정합니다.



예를 들어, customer_id, product_id 및 date 열이 있는 판매 데이터 테이블을 고려해 보겠습니다. customer_id와 product_id의 고유한 조합 수를 계산하려고 합니다.





SQL의 여러 열에서 고유한 조합 계산

SQL의 COUNT DISTINCT 절과 CONCAT 함수를 사용하여 여러 열에서 고유한 조합의 수를 계산할 수 있습니다.

CONCAT 함수를 사용하면 두 개 이상의 값을 단일 값으로 연결하여 비교 및 ​​계산에 사용할 수 있습니다.



다음 구문을 사용하여 이를 더 잘 설명할 수 있습니다.

개수 선택 ( 뚜렷한 연결 ( 열1, 열2 ) )
FROM table_name;


이 경우 column1과 column2는 카운트하면서 연결하려는 열을 나타내고 table_name은 대상 테이블의 이름을 나타냅니다.

샘플 테이블을 살펴보겠습니다.

CREATE TABLE 판매 (
ID INT 기본 키,
고객 ID INT,
product_id INT,
날짜 날짜
) ;

판매 가치에 삽입
( 1 , 100 , 1 , '2023-05-01' ) ,
( 2 , 101 , 1 , '2023-05-02' ) ,
( , 100 , 2 , '2023-05-02' ) ,
( 4 , 102 , , '2023-05-03' ) ,
( 5 , 101 , 2 , '2023-05-03' ) ,
( 6 , 103 , 2 , '2023-05-04' ) ,
( 7 , 100 , , '2023-05-04' ) ,
( 8 , 102 , 1 , '2023-05-05' ) ,
( 9 , 101 , , '2023-05-05' ) ,
( 10 , 103 , 1 , '2023-05-06' ) ;


결과 테이블:


이전 테이블의 customer_id 및 product_id 열의 고유한 조합 수를 확인하기 위해 다음과 같은 쿼리를 사용할 수 있습니다.

개수 선택 ( 뚜렷한 연결 ( 고객 ID, '-' , 제품 ID ) ) ~처럼 결과
판매에서;


이전 쿼리에서는 distinct 절과 concat 함수를 사용하여 customer_id 및 product_id 값을 하이픈으로 연결했습니다. 이렇게 하면 다음과 같이 각 조합에 대해 단일 값이 생성됩니다.


여기에서 count 함수를 사용하여 결과 테이블에서 고유한 조합을 계산할 수 있습니다.

결론

이 튜토리얼이 도움이 되었기를 바랍니다. 이 게시물에서는 여러 SQL 테이블 열에서 고유한 값을 결정하기 위해 distinct 절, concat() 함수 및 count 절을 결합하는 방법을 발견했습니다.