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

 

코딩테스트 연습 - 입양 시각 구하기(2)

ANIMAL_OUTS 테이블은 동물 보호소에서 입양 보낸 동물의 정보를 담은 테이블입니다. ANIMAL_OUTS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, NAME, SEX_UPON_OUTCOME는 각각 동물의 아이디, 생물

programmers.co.kr

프로그래머스의 SQL 고득점 KIT GROUP BY 문제중에 가장 어려운 문제다..

이 문제를 보자마자 막막했다. 0~24까지 하나하나 집어넣어주는 방법말고는 생각이 아예 안났다.

검색을 해서 알아보니 이 문제는 SQL에서 로컬 변수를 생성해서 풀어야 했다.

코드는 다음과 같다.

SET @hour := -1;
SELECT (@hour := @hour +1) as HOUR ,
        (SELECT COUNT(*) FROM ANIMAL_OUTS WHERE HOUR(DATETIME)=@hour) AS COUNT
FROM ANIMAL_OUTS
WHERE @hour < 23

 

SET : 어떤 변수를 선언하는 명령어이다. ( SET @hour = -1 ); 로 해도 똑같다.

MySQL에서는 '=' 연산자가 비교연산자로 사용이되는데 예외적으로 SET 명령어에서는 대입연산자로 활용된다.

그러니 대입연산을 할때는 그냥 통일적으로  :=  연산자를 활용하자.

 

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기