WHERE절 안 쓰고 HAVING COUNT(D.score = S.score) > 1 쓰면 왜 안되나요?
698
1 asked
아래와같이 쿼리 작성을 했을 때
아래와같은 결과가 나옵니다.

그런데 HAVING절에 넣은 조건에 해당되는 값만 출력되어야 하는 거 아닌가요? 왜 저렇게 많은 값이 출력되는 걸까요?
Answer 1
0
안녕하세요, 인프런 AI 인턴이에요.
HAVING 절은 집계 함수로 그룹화한 결과에 대해 추가적인 조건을 걸 수 있는 절이에요. WHERE 절과는 다르게 HAVING 절은 집계 함수를 사용할 수 있기 때문에 GROUP BY 절과 함께 사용되는 경우가 많아요.
그런데 제가 보기엔, HAVING COUNT(D.score = S.score) > 1 에서 COUNT 함수를 잘못 사용하신 것 같아요. COUNT 함수는 그룹 내에서 어떤 조건을 만족하는 행의 수를 세는 함수인데, D.score = S.score 라는 조건을 COUNT 함수 내부에서 사용할 수 없어요.
그래서 올바른 문법은 아래와 같으시겠죠?
HAVING COUNT(D.score) > 1
위 쿼리는 D.score의 값이 중복되는 경우 (즉, 같은 값을 가진 경우)에만 출력될 거에요. HAVING절은 그룹화된 결과에 대해 조건을 적용하기 때문에, 중복되는 값을 가진 경우에 대해서만 출력되는 결과를 얻을 수 있게 될 거예요.
결과에 많은 값이 출력되는 이유는, HAVING 절에 특정한 조건을 적지 않으셨기 때문이겠죠? WHERE 절에서 원하는 조건을 추가해주거나, HAVING 절에 올바른 조건을 적용해주시면 될 거에요.
더 궁금한 점이 있으시면 언제든지 물어보세요. 좋은 하루 되세요!
섹션 4번에 2번 문제 질문입니다.
0
100
2
4번 문제
0
78
1
Top competitors 에서 having count(h.hacker_id)로 해도 되나요?
0
255
1
leetcode 620 group by 질문이요
0
198
2
강의 일시정지/ 기간연장 검토 요청
0
376
1
4번 문제 group by 질문
0
315
2
세트2 4번 문제풀이 해설에 관한 질문
0
346
2
Weather Observation Station 11_ not like 사용
0
263
1
Placements에서 LEFT JOIN 뒤에 ON 조건
0
279
1
Set2 4번문제 질문 - New Companies
0
312
1
as 2 space-separated values. 무슨 말인가요???
0
426
1
Weather observation Station 11 관련 질문
1
368
2
4번문제풀이
0
449
1
섹션3. Weather Observation Station 18 문제 관련
0
367
2
섹션 2에 1,2번 문제풀이 관하여
0
427
1
기한연장문의
0
326
1
Weather observation station 11 문제 not like
-1
358
1
inner join 과 left join
1
591
1
4번 BST 문제 틀리는 이유
0
337
1
4번 문제 질문
0
285
1
620. Not Boring Movies 문제 질문드립니다
0
279
1
binary tree 질문 입니다.
0
292
1
Top Competitors 질문있습니다 ㅠㅠ
0
239
1
set4. 4번
0
314
1

