본문 바로가기
카테고리 없음

[Programmers] SQL 고득점 Kit - GROUP BY

by chesleashin 2021. 2. 26.

 

programmers.co.kr/learn/courses/30/parts/17044

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

Programmers 코딩테스트 SQL 고득점 KIT

 

GROUP BY


  • 고양이와 개는 몇 마리 있을까

SELECT ANIMAL_TYPE, COUNT(*) as count
FROM ANIMAL_INS
GROUP BY ANIMAL_TYPE
ORDER BY ANIMAL_TYPE;

 

  •  

    동명 동물 수 찾기

     

SELECT NAME, COUNT(*) AS COUNT
FROM ANIMAL_INS
WHERE NAME IS NOT NULL
GROUP BY NAME
HAVING COUNT(NAME) >= 2
ORDER BY NAME;
  • 입양 시각 구하기(1)

SELECT HOUR(DATETIME) as HOUR, count(*) as COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 9 and 19
ORDER BY HOUR;
  • 입양 시각 구하기(2)

SET @HOUR = -1;
SELECT @HOUR := @HOUR + 1 AS HOUR, (select count(*) from animal_outs where hour(datetime) = @hour) AS COUNT
FROM ANIMAL_OUTS
GROUP BY HOUR
HAVING HOUR BETWEEN 0 AND 23
ORDER BY HOUR;

마지막 문제는 @사용법을 모르면 평생을 줘도 못 풀었을 것 같은 문제이다.. 사실 지금도 잘 모르겠다 ㅋㅋ Level 4인 이유가 있다..