중복제거
103
작성한 질문수 2
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문 전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
풀이 시간에
SELECT distinct u.name, u.email
FROM users u
JOIN orders o on u.user_id = o.user_id
WHERE o.quantity > 1;한 번의 주문으로 상품을 2개 이상 구매한 고객의 쿼리는 중복제거를 해주셨는데요,
SELECT
u.name AS 고객명,
u.email AS 이메일
FROM users u
JOIN orders o on u.user_id = o.user_id
JOIN products p on o.product_id = p.product_id
WHERE p.category = '전자기기''전자기기' 카테고리 상품을 한 번이라도 구매한 고객은 중복제거를 해주지 않았더라구요. 하나의 그룹에 고객이 두명이 나오는 게 이상해서

이 경우 distinct 혹은 GROUP BY u.name, u.email을 추가해주어 중복제거 해주면 될까요?
distinct 와 GROUP BY 중 어떤걸 사용하는 게 더 좋을까요? 집계함수를 사용하지 않으니 distinct가 더 나을까요?
답변 2
0
안녕하세요, 인프런 AI 인턴입니다.
풍얀님께서 제기하신 질문에 대해 아래와 같이 답변 드리겠습니다.
‘전자기기’ 카테고리 상품을 구매한 고객의 중복을 제거하기 위해
DISTINCT를 사용하거나,GROUP BY를 사용할 수 있습니다. 두 방법 모두 중복된 데이터를 제거하는 효과가 있습니다.DISTINCT는 주로 해당 열의 중복을 직접 제거할 때 간단하게 사용할 수 있습니다. 집계 함수를 사용하지 않는 경우에는DISTINCT가 더 직관적이고 간단할 수 있습니다.반면,
GROUP BY는 데이터의 그룹별 집계 결과가 필요할 때 사용됩니다. 따라서, 집계 함수를 사용하지 않는다면DISTINCT를 사용하는 것이 더 적합할 수 있습니다.
따라서, 전자기기 카테고리의 상품을 한 번이라도 구매한 고객을 중복 없이 출력하려면 다음과 같이 쿼리를 작성하시면 됩니다:
SELECT DISTINCT
u.name AS 고객명,
u.email AS 이메일
FROM users u
JOIN orders o on u.user_id = o.user_id
JOIN products p on o.product_id = p.product_id
WHERE p.category = '전자기기'
이렇게 DISTINCT를 사용하여 중복을 제거할 수 있습니다. 추가로, 두 방법 모두 원하는 결과를 얻을 수 있다면 코드의 가독성과 유지보수성을 고려하여 선택하면 좋습니다.
해당 쿼리 작성 시 참고할 문서: Spring Data JPA - Query Creation.
추가적인 질문이 있으면 언제든지 말씀해 주세요. 도움이 되었길 바랍니다!
간단한 오타 제보입니다.
0
19
1
ON을 명시하지 않았을 경우 질문드립니다.
0
63
1
강의 2:53 union을썼는데도 션이 중복
0
61
1
where 대신 having을 써도 되나요?
0
85
1
주문 내역에 대한 고객 데이터
0
67
2
in 수행
0
46
1
외부조인1 강의 관련 질문
0
77
3
커버링 인덱스와 랜덤i/o 질문
0
73
1
오타인거죠?
0
82
1
섹션 3 퀴즈 3번 문제
0
79
2
GROUP BY 기준 컬럼
0
89
1
질문이 있습니다
0
58
1
오타
0
84
2
실제 상용 서비스 질문
0
101
1
파티셔닝 관련 질문입니다.
0
62
1
join 문제 풀이2 문제1(self join) 질문
0
68
1
9. 인덱스2.pdf 중에서
0
81
1
문제 2번
0
69
2
문제와 풀이1 - 3번 문제
-1
73
2
잘 사용하진 않지만 풀 외부 조인을 사용하신 사례가 궁금합니다!
0
96
1
[58. 인덱스와 정렬]을 듣다가 질문입니다.
0
96
2
두개 이상의 테이블을 조인할때 인덱스 질문이 있습니다.
0
62
1
파일을 만드는 단위가 궁금해요
0
75
1
MySQL은 실무에서 사용하는 케이스도 있을까요?
0
85
1





