반응형
데이터를 그룹화하고 조건에 따라 필터링하는 데 사용되는 SQL절인
GROUP BY절과 HAVING절이 반드시 같이 와야하는지가 궁금했다.
결론부터 말하자면,
GROUP BY
데이터를 특정 열 또는 열의 조합에 따라 그룹화
그룹화된 결과는 그룹 내에서 집계 함수를 사용하여 요약된 정보를 얻을 수 있다.
HAVING
GROUP BY 절과 함께 사용되며, 그룹화된 결과에 대한 필터링 조건을 지정
집계 함수를 사용한 결과에 대한 조건을 지정하여 특정 그룹만 선택하거나 제외할 수 있다.
우선순위는 GROUP BY가 먼저이기 때문에 학과(department)별로 그룹 지어주고,
평균 성적이 80보다 높은 학생들만 필터링 된다.
GROUP BY만 사용할 경우
데이터를 그룹화하여 그룹 내에서 집계 함수를 사용하여 요약된 정보를 얻을 수 있다.
예를 들어, 학과 별로 학생 수를 세는 경우 GROUP BY만 사용하여 각 학과의 학생 수를 구할 수 있다.
HAVING만 사용할 경우
그룹화된 결과에 대한 필터링 조건을 지정하고자 할 때 사용할 수 있다.
이 경우, 전체 데이터를 그룹화하지는 않고, 집계 함수 결과에 대한 조건을 지정하여 특정 그룹만 선택할 수 있다.
예를 들어, 성적이 80보다 높은 학과만 선택하고자 할 때
반응형
'활동 > 호기심' 카테고리의 다른 글
해시함수 정리 (Hash 충돌 발생 원인과 해결방법 / Hash Table과 Hash Map 차이점) (0) | 2023.08.22 |
---|---|
자바 제네릭(Generic) 정의와 사용하는 이유 정리 (0) | 2023.08.21 |
정처기 공부하다 빠져버린 FIFO 페이지 교체 알고리즘의 늪 (페이지 부재(page fault) 횟수 문제 완벽 이해) (0) | 2023.05.09 |
자바에서 클래스 멤버와 인스턴스 멤버.. 진짜 뭔소린지 하나도 모르겠네 (0) | 2023.04.09 |
Primitive와 Reference 타입 차이점? (0) | 2023.03.29 |