728x90
반응형
1. 문제 설명
반응형
2. 풀이과정
해당 문제는 두 번 이상 쓰인 동물 이름과 쓰인 횟수를 조회하는 문제이다.
이름이 없는 동물은 집계에서 제외되어야 하므로 조회할 때 이름값이 NULL이 아닌 값들만 가져온다.
이름별로 쓰인 횟수를 조회해야 하므로 이름별로 그룹을 묶어준다.
이름별로 묶인 그룹에서 각 이름별 쓰인 횟수를 구하고 그 횟수가 2회 이상인 값들만 가져온다.
쓰인 이름의 횟수를 구하려면 조회한 데이터의 개수를 구해야 한다.
이는 COUNT() 함수를 활용하여 해당 컬럼의 데이터 개수를 세어주면 된다.
묶인 그룹에서 2회 이상 쓰인 이름만 가져와야 하므로 WHERE 조건이 아니라 HAVING 조건에 작성한다.
HAVING 절에서는 SELECT 절에서 정의한 컬럼명을 활용할 수 있다.
최종 결과는 이름 순으로 조회한다.
- 이름 컬럼과 이름이 쓰인 횟수를 세어 조회한다. SELECT NAME, COUNT(NAME) AS COUNT
- 값을 조회할 테이블을 지정한다. FROM ANIMAL_INS
- 이름이 없는 동물을 제외되어야 하므로 이름값이 NULL이 아닌 값들만 가져온다. WHERE NAME IS NOT NULL
- 이름별로 쓰인 횟수를 조회해야 하므로 이름별로 그룹을 묶어준다. GROUP BY NAME
- 이름별로 묶인 그룹에서 각 이름별 쓰인 횟수를 구하고 그 횟수가 2회 이상인 값들만 가져온다. HAVING COUNT >= 2
- 최종 결과는 이름 순으로 조회한다. ORDER BY NAME
728x90
3. 소스코드
SELECT NAME, COUNT(NAME) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT >= 2
ORDER BY NAME
728x90
반응형
'프로그래머스 > MySQL' 카테고리의 다른 글
[프로그래머스] 카테고리 별 상품 개수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.12 |
---|---|
[프로그래머스] DATETIME에서 DATE로 형 변환 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.10 |
[프로그래머스] NULL 처리하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.08 |
[프로그래머스] 가격이 제일 비싼 식품의 정보 출력하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.07 |
[프로그래머스] 중복 제거하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.06 |
[프로그래머스] 동물 수 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.06 |
[프로그래머스] 이름에 el이 들어가는 동물 찾기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.09.01 |
[프로그래머스] 최솟값 구하기 - MySQL - 우당탕탕 개발자 되기 프로젝트 (0) | 2024.08.30 |