본문 바로가기

프로그래머스

(MySQL / 프로그래머스) 입양 시각 구하기(2)

728x90
반응형
SMALL


입양 시각 구하기(2)


 



문제 출처

코딩테스트 연습 - 입양 시각 구하기(2) | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

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

programmers.co.kr



Code

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


Code설명 & TIPS


풀이 방법!

 문제를 잘 보면 예시와 같이 0시,1시,2시 등등 없던 시간을 먼저 삽입해야한다.

 

 그러기 위해선 SET을 사용해야하고 

 

 SET을 사용하기 위해선 변수 선언을 하는 방법을 알아야한다.

 

 그럼 위에 코드와 같이 SET @변수명 = 원하는값; 이렇게 선언을 해야한다.(당연 반드시 세미콜론도 삽입해야함)

 

 MySQL에서 변수를 사용할 때, 일반적으로 변수를 선언하고 초기화하는 구문이 없으면 오류가 발생할 수 있다.

 

 고로 @HACS와 같이 "@" 기호를 사용하여 변수를 사용하기 전에 먼저 선언하고 초기화해야 한다.

 

 

 

 여기서 잠깐! 참고로 '@' 이것은 MYSQL에서만 사용한다

 PostgreSQL과 Oracle은 '@'대신 DECLARE과 BEGIN을 사용하여 변수 선언 및 초기화를 하고 추가로 PostgreSQL은 '$'기호를 추가로 더 사용한다. 

 DBMS마다 SQL구문 사용방법이 다르니 본인이 사용하는 환경에 따라 어떻게 사용하는지 학습하고 가길 바란다. 이거말고도 다른점이 매우 많기 때문이다!(LIMIT나 DATE나 REGEXP.. 등등)

 (이러한 DBMS마다 차이는 생각보다 많기에 나중에 데이터를 모아 TIPS로 다룰 예정이다.)

 

 

 

 

추가로  ":=" 연산자는 SQL에서 변수를 할당하고 그 값을 반환하는 데 사용되는 기호이다.(자바로 치면 =이다)

 

 

 

 

 

티스토리와 깃허브 홈
 

학스의 개발일지

안녕하세요 일상과 코딩공부를 올리고 있는 JAVA개발자 학스입니다. 저는 주로 JAVA, jQuery, PostgreSQL, HIVE을 다루고 있고 코딩테스트공부도 병행중입니다. 제 깃허브 주소인 https://github.com/hacs2772에

hacs2772.tistory.com

 

 

hacs2772 - Overview

개발왕 학스. hacs2772 has 8 repositories available. Follow their code on GitHub.

github.com

 

 

오류나 궁금하신점은
아래 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

728x90
반응형
LIST