- 코딩 테스트 문제를 풀다가 그룹별로 count를 출력하는데 그룹이 없는곳에는 count가 0으로 * 출력되게끔 나오는 문제를 풀었는데 어려웠다. 그때 사용할 수 있는 절이
with as절이다 즉, 가상의 테이블을 만들어서 sub query등 새로운 테이블과 결합이 가능하다 (재귀 호출을 통해 서브쿼리 내에서 임시테이블을 사용)
> WITH RECURSIVE 가상 테이블명 as(
select문
UNION ALL
반복할 조건문 ->select문 + where 조건문)
구조이다 . 예시를 들면
WITH RECURSIVE NEW AS(
SELECT 0 AS NUM #num이라는거 만드는데(select문)
UNION ALL
SELECT NUM+1 FROM NEW #num은 23까지 +1한거를 계속 더한다(select)
WHERE NUM < 23 (where)
)
즉 new 라는 가상의 테이블을 만드는데 값은 0을담는 column num을 만들어서 그 num 값에 23까지 1씩 더해서 채운다는 내용이다