https://programmers.co.kr/learn/courses/30/lessons/59413
프로그래머스의 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 명령어에서는 대입연산자로 활용된다.
그러니 대입연산을 할때는 그냥 통일적으로 := 연산자를 활용하자.
'TIL' 카테고리의 다른 글
프로그래머스 네트워크 Java (0) | 2021.08.29 |
---|---|
[TIL] 프로그래머스 SQL 및 코딩문제 풀이 (0) | 2021.08.28 |
[TIL] CSS 포지셔닝, JavaScript 문법, MySQL JOIN (0) | 2021.08.27 |
프로그래머스 오랜 기간 보호한 동물(2) mysql (0) | 2021.08.27 |
알고리즘 문제 풀면서 배운 것들 (0) | 2021.08.25 |
최근댓글