SQL 문제

입양 시각 구하기(2)

redknife 2022. 11. 21. 12:13

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


정답

이번문제는 SET에대한 개념을 알지 못해서 아예 풀지 못하였다. SQL에서 SET은 변수에 특정한 값을 넣어줄 때 사용한다.변수 앞에는 @가 들어가야하고 처음 값을 설정해줄때만 = 를 사용하고 그 이후에는 :=를 이용한다. 위의 코드를 보면 초기에 HOUR변수에 -1를 대입하고 하나씩 더하면서 HOUR 이 22가 될때까지 하나씩 더하가며 문제에서 주어진 23까지의 행을 만들어준다. 그리고 SELECT문에 COUNT를 세는 서브쿼리를 만들어서 문제를 해결하였다. 
그리고 신기한것이 저번에 포스팅 한 글에서 SQL 구문의 순서를 다룬적이 있었는데 그때 분명 SELECT문은 FROM, WHERE, GROUP, HAVING 뒤에 실행되는것으로 알고있었는데 SELECT문에서 **** AS 'COL'으로 설정해놓으면 ****대신 COL으로 조건문을 작성해야 정상적으로 실행되는것을 볼수있었다. 영문 모르게 자꾸 에러가 났는데 잘 기억해두어야겠다.