업무시 쿼리를 작성하다 보면 반영시킬 내용이 복잡해지면서 쿼리 자체가 길게 늘어지는 경우가 상당히 많습니다.
당장 결과 도출을 위해서 어떤 식으로든 작성해도 상관은 없을 수 있지만,
이 쿼리를 누군가 참고할 수 있도록, 혹은 바로 협업 가능하게끔 가독성을 높여 두면
그 활용 가치는 훨씬 더 높아지게 됩니다.
그런 차원에서 활용하기 좋은 함수가 있는데요, 바로 WITH 함수입니다.
WITH 함수란?
WITH함수는 사전적 의미(=함께, 포함된 등)에 맞게 전체 쿼리에 함께 사용되는 또 다른 쿼리를 '함께' 사용할 때 쓰이는 함수입니다.
전체 쿼리 내용이 복잡해 지고, 여러 테이블을 정의해야 된다면 그 특정 쿼리 내에서만 일시적으로 사용 되는 테이블(CTE)들이 계속 생성되기도 하는데요,
그런 경우 하위 테이블들 각각에 의미를 부여한 테이블 정의를 WITH 절(=WITH 함수)로 할 수 있게 되는 것입니다.
그럼 여기서 WITH 함수로 정의되는 CTE는 무엇인지 알아볼까요??
CTE??
CTE(Common Table Expression)은 특정 쿼리 내에서 일시적으로 사용할 수 있는 이름이 부여된 임시 데이터 결과의 집합으로 볼 수 있습니다.
'특정' 쿼리 내에서 '임시'로 정의되는 데이터 집합인 만큼 공식적으로 정의된 테이블이 아니며, 여러 데이터 집합을 참조하여 데이터를 호출해야 되는 경우 유용하게 사용됩니다.
CTE 사용시 주의 사항으로는
첫째, WITH 함수로만 불러올 수 있다는 점
둘째, SELECT 쿼리를 통해서만 데이터를 추출하거나 가공할 수 있다는 점
셋째, 단일 쿼리 내에서만 정의, 호출 될 수 있다는 점
등이 있습니다.
따라서, 단일 쿼리 내에서 특정 결과를 보다 쉽게 추출/가공하기 위해서는
WITH 함수와 CTE를 참고해 보실 수 있습니다.
'일' 카테고리의 다른 글
내가 부동산 중개업을 하고자 하는 이유 세가지 (5) | 2024.10.01 |
---|---|
MySQL, 날짜 형식이 내 마음대로 변경 안 된다면..? | CAST함수 (0) | 2024.09.01 |
구글 스프레드시트 데이터 요약 도구 | 피봇 테이블 (0) | 2024.07.24 |
구글 스프레드시트에서 쉽게 데이터 마트 만드는 함수 2가지 (0) | 2024.07.24 |
Arrayformula와 같은 역할을 하는 Map 함수, 용도의 차이는? (0) | 2024.07.23 |