코딩테스트/프로그래머스

[MYSQL]입양 시각 구하기 2 SET, WHERE

clamp 2022. 10. 12. 14:53

테이블 명

ANIMAL_OUTS 

 

속성

ANIMAL_ID

NAME

ANIMAL_TYPE

DATETIME

SEX_UPON_OUTCOME

 

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 한다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다.

SET @HOUR = -1;

SELECT (HOUR := HOUR + 1) AS HOUR,
	(SELECT COUNT(HOUR(DATETIME))
    FROM ANIMAL_OUTS
    WHERE HOUR(DATETIME) = @HOUR) AS COUNT
FROM ANIMAL_OUTS
WHERE @HOUR < 23;

* SET명령어를 사용해야한다.

SET은 어떤 변수에 특정 값을 할당할때 쓰는 명령어다.

SET사용시 대입 연산자를 =를 사용하고, 그 이외에는 :=를 사용해야 한다.

COUNT로 DATETIME의 HOUR을 가져오고, @HOUR에 해당하는 COUNT를 가져오게된다.