[프로그래머스/MySQL] GROUP BY

bye9·2021년 3월 11일
0

알고리즘(코테)

목록 보기
93/130

https://programmers.co.kr/learn/courses/30/lessons/59040


문제풀이

고양이와 개가 각각 몇 마리인지 조회하기 위해 ANIMAL_TYPE으로 그룹화한다.

그리고 고양이를 개보다 먼저 조회하기 위해 오름차순 정렬해준다.

소스코드

-- 코드를 입력하세요
SELECT ANIMAL_TYPE, COUNT(*) as "count" 
FROM ANIMAL_INS 
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE


https://programmers.co.kr/learn/courses/30/lessons/59041


문제풀이

이름이 없는 동물은 집계에서 제외하고 두 번 이상 쓰인 이름과 그 횟수를 구하기 위한 sql문은 코드1과 같다.

코드2는 COUNT(NAME)을 사용할 경우 NAME이 NULL인 경우는 자동으로 빼고 계산하기 때문에 정답이 될 수 있다.

소스코드

코드1

-- 코드를 입력하세요
SELECT NAME, COUNT(ANIMAL_ID) as "COUNT" 
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(ANIMAL_ID)>=2
ORDER BY NAME

코드2

-- 코드를 입력하세요
SELECT NAME, COUNT(*) as "COUNT" 
FROM ANIMAL_INS
GROUP BY NAME
HAVING COUNT(NAME)>=2
ORDER BY NAME


https://programmers.co.kr/learn/courses/30/lessons/59412


문제풀이

각 시간대별로 입양 건 수를 조회하기 위해 DATETIME에서 시간만 뽑아낸 HOUR로 그룹화시켜 준다.

HAVING HOUR between 9 and 19는
HAVING HOUR>=9 and HOUR<=19와 같다.

소스코드

SELECT hour(DATETIME) as HOUR, count(ANIMAL_ID) as COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR between 9 and 19
ORDER BY HOUR

0개의 댓글