Coding Diary.

(SQL) DISTNICT 개념 및 연습문제 본문

Coding/SQL

(SQL) DISTNICT 개념 및 연습문제

life-of-nomad 2024. 5. 13. 11:45
728x90
반응형

1) DISTINCT

  • DISTINCT문은 중복된 데이터를 제거하고 데이터를 조회할 때 사용합니다.
  • DISTINCT문을 사용하면 테이블에 중복되는 데이터를 한번만 출력하여 고유 값만을 추출합니다.
  • 일부 열을 기준으로 그룹화하고 싶지만 집계를 포함하지 않을 때 GROUP BY 대신 사용합니다.
  • SELECT 문에서 사용되며 SELECT 문에 작성된 모든 열에 대해 고유한 행 제공합니다.
SELECT DISTINCT column1, column2, column3
FROM table1;
  • 아래는 잘못된 예시입니다.
SELECT DISTINCT column1, DISTINCT column2, DISTINCT column3
FROM table1;
  • 결과 예시 

 

 

2) 연습문제

schema

  • DISTINCT를 사용하여 둘 이상의 지역과 연결된 계정이 있는지 테스트하십시오.
SELECT a.id accounts_id, r.id region_id, a.name accounts_name, r.name region_name
FROM accounts a
JOIN sales_reps s
ON a.sales_rep_id = s.id
JOIN region r
ON s.region_id = r.id;

query 1

 

SELECT DISTINCT id, name
FROM accounts;

 

query 2

 

위의 두 쿼리는 결과 행 수가 351로 같습니다. 따라서 모든 계정이 하나의 지역에만 연결되어 있음을 알 수 있습니다. 각 계정이 둘 이상의 지역과 연결된 경우 첫 번째 쿼리는 두 번째 쿼리보다 더 많은 행을 반환해야 합니다.

 

 

  • sales reps가 두 개 이상의 계정에서 일한 적이 있습니까?
SELECT s.id, s.name, COUNT(*) num_accounts
FROM accounts a
JOIN sales_reps s
ON s.id = a.sales_rep_id
GROUP BY s.id, s.name
ORDER BY num_accounts;

SELECT DISTINCT id, name
FROM sales_reps;

 

 

영업 담당자가 맡은 가장 적은 수의 계정이 3이므로 모든 영업 담당자는 둘 이상의 계정을 맡았습니다. 총 50명의 영업 담당자가 있고 모두 둘 이상의 계정을 가지고 있습니다.

728x90
반응형