요즘 완전 SQL 알고리즘 문제에 빠졌다...너무 재밌는데..이거
1. QUARTER ()
분기별 표시를 해줄 때 조건부로 해줘야하는줄 알았는데 YEAR, MONTH와 같이 따로 함수가 존재했음.
2. 날짜 차이 구하기
그냥 단순하게 날짜끼리 빼면 되는거 아닌가? 싶었지만, 쿼리 실행결과로 이걸로는 안되겠구나 싶었다.
SELECT START_DATE, END_DATE,
(END_DATE - START_DATE) AS DATE FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE YEAR(START_DATE) = 2022 AND MONTH(START_DATE) = 9
ORDER BY HISTORY_ID DESC;

22.09.25에서 23.01.03인데 9178일?! 도랏나!!
그러다가 날짜 차이를 구할 수 있는 함수가 있다는걸 알았다.
DATEDIFF(날짜1, 날짜2);
TIMESTAMPDIFF(단위, 날짜1, 날짜2);
#단위
#SECOND : 초
#MINUTE : 분
#HOUR : 시
#DAY : 일
#WEEK : 주
#MONTH : 월
#QUARTER : 분기
#YEAR : 연
출처: https://extbrain.tistory.com/78 [확장형 뇌 저장소:티스토리]
Alias 부여한 컬럼 조건부에서 사용하기
SELECT절에서 Alias로 별칭을 부여한 컬럼을 조건절에서 사용하고 싶었는데 오류가 발생해서 안되는건가 싶어 찾아봄. 결론적으로는 안됨.
FROM -> WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY
이유는 위와 같이 실행되는 순서때문이라고 함. alias의 값을 사용하기 위해선 GROUP BY 이후의 조건구문인 HAVING을 이용한 쿼리를 사용해야 한다고함.