QUESTION) 동명 동물 수 찾기
1. 두 번 이상 쓰인 이름과
2. 해당 이름이 쓰인 횟수
3. 이름이 없는 동물은 집계에서 제외
4. 이름 순으로 조회
## 문제풀이 전 개념 플러스
- count(컬럼 명)은 null을 무시하고 집계하지만,
- count(*)는 null까지 포함해서 개수를 집계
## 문제해결 1
- GROUP BY 조건으로 그룹 나눠준 후
- HAVING 이용하여 다시 한 번 조건 체크
++ WHERE 절은 생략가능 -
- WHY?
- COUNT(칼럼) 해주면 NULL제외하고 집계해주기 때문에
## 문제해결 2
- 서브 쿼리 이용 - 각각의 이름이 몇 번 쓰였는지 뽑아낸 뒤
- 그 중 2번 이상 사용한 이름과 횟수 뽑아내기.
## 서브 쿼리문 체크
## CHECK
- GRUOP BY로 그룹을 나눠주기 않으면!
- 모든 NAME의 COUNT해준값 1개만 출력.
REVIEW
이번 문제에서는 HAVING을 이용하여 풀이하는 방법이
더 효율적으로 생각된다.
이번 문제의 응용 방법으로
두 번 이상 주문한 사람의 이름과 횟수 알아내기로 제목을 정했다.
( 주문 테이블에 있는 주문자 이름 참고하는 )
SELECT 이름, COUNT(이름) AS 주문 횟수
FROM 주문 테이블
GROUP BY 이름
HAVING COUNT(이름) > 1
주문 테이블에서
주문자 이름 별로 그룹을 지어주고
2번 이상 주문한 사람의 이름과 횟수 뽑아내기!
'Programmers > Oracle' 카테고리의 다른 글
[ ANSI JOIN ] , [ Oracle Join ] - 배송 예정일과 도착일 비교 (0) | 2022.06.07 |
---|---|
[ LEFT/RIGHT OUTER JOIN ] [ NOT IN ] - 한쪽에만 있는 정보 뽑아오기 (0) | 2022.06.03 |
[ LIMIT, MIN-MAX ] 가장 먼저 들어온 값 1개 / 가장 늦게 들어온 값 1개 (0) | 2022.06.01 |