오늘도 SQL 알고리즘 문제를 풀었다.
HAVING
GROUP BY 이후 검색할 조건을 걸고 싶을 때 사용한다.
HAVING 명령어는 WHERE와 거의 같은 역할을 하는데 순서의 차이가 있다.
쿼리문은 아래와 같은 순서로 명령어를 처리한다.
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
7. LIMIT
WHERE는 GROUP BY로 묶기 전에 조건을 걸고, HAVING은 GROUP BY 이후 조건을 건다.
CASE WHEN
CASE WHEN을 문제에 적용해봤다. 그런데 궁금한 점은 해당 명령어는 가장 먼저 실행되냐는 점이다.
SELECT 절에서 사용을 했는데 GROUP BY에서 해당 명령어의 ALIAS를 호출할 수 있었다.
LEFT()
SUBSTRING() 함수가 적용이 안 되서 LEFT() 함수를 사용했었다.
LEFT(컬럼, 인덱스)
가장 처음부터 인덱스 문자까지 자른다.
RIGHT(컬럼, 인덱스)
인덱스부터 마지막 문자까지 자른다.