스파게티 쿼리를 CTE 방식으로 구조화해서 정리해보세요.

Common Table Expression(CTE) 는 SQL에서 사용하는 임시 결과입니다. 아주 길고 큰 쿼리에서 CTE는 전체의 일부를 표현하는 작은 쿼리가 됩니다. CTE의 장점은 아래와 같습니다. * 쿼리에서 특정 부분이 어떤 일을 하는지 구조화 * 의존하는 테이블 명시 * 간단한 디버깅 다시 말해, CTE 방식은 쿼리를 구조화해서 복잡성을 낮추고 의존성을 드러내서 디버깅이 간단해지게 합니다. CTE를 활용한 예제는 아래와 같습니다. 1. orders 테이블을 Import 하고, 2. 1번에서 가져온 테이블을 유저별로 집계 합니다. 3. 2번에서 집계한 값으로 유저 세그먼트를 나눕니다. 4. 세그먼트까지 나눈 결과 테이블을 조회합니다. ``` with import_orders as ( select * from orders ), aggregate_orders as ( select customer_id, count(order_id) as count_orders from import_orders where status not in ('returned', 'return pending') group by 1 ), segment_users as ( select *, case when count_orders >= 3 then 'super_buyer' when count_orders <3 and count_orders >= 2 then 'regular_buyer' else 'single_buyer' end as buyer_type from aggregate_orders ) select * from segment_users ``` nested query인 subquery로 표현하면 이렇게 되겠네요. ``` select *, case when count_orders >= 3 then 'super_buyer' when count_orders <3 and count_orders >= 2 then 'regular_buyer' else 'single_buyer' end as buyer_type from ( select customer_id, count(order_id) as count_orders from orders where status not in ('returned', 'return pending') group by 1 ) ``` 더 자세한 내용이 궁금하시면 아래 글을 보시면 좋습니다. https://docs.getdbt.com/terms/cte

CTE in SQL | dbt Developer Hub

Getdbt

CTE in SQL | dbt Developer Hub

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 12일 오전 1:16

댓글 0

    함께 읽은 게시물

    📢 실무 프로젝트로 성장하고 싶은 주니어 개발자 분들에게

    ... 더 보기

    패스트캠퍼스 : INNER CIRCLE | 패스트캠퍼스

    bit.ly

    패스트캠퍼스 : INNER CIRCLE | 패스트캠퍼스

     • 

    저장 73 • 조회 5,794


    리더. 국어사전을 보면 조직이나 단체에서 전체를 이끌어가는 위치에 있는 사람이라고 기술되어 있다. 지식백과사전에는 어떤 조직이나 단체에서 목표의 달성이나 방향에 따라 이끌어 가는 중심적인 위치에 있는 사람, 구성원들에 대한 결정의 책임을 지고 또한 집단 외부와의 조정 기능의 역할도 하는 사람이라고 되어 있다.

    ... 더 보기

    [시사뉴스] 【박성태 칼럼】 리더가 독재를 하게 되는 두가지 이유

    www.sisa-news.com

    [시사뉴스] 【박성태 칼럼】 리더가 독재를 하게 되는 두가지 이유

    < '네이버 다녀요'라는 말에 아무도 무슨 일을 하는지는 묻지 않았다 >

    1

    ... 더 보기

    React 면접 전 살펴보기 위한 Q&A 40가지 (2024년 ver)

    1. R

    ... 더 보기

    Top 40 ReactJS Interview Questions and Answers in 2024 | Simplilearn

    Simplilearn.com

    Top 40 ReactJS Interview Questions and Answers in 2024 | Simplilearn

     • 

    댓글 1 • 저장 218 • 조회 11,579


    스몰 데이터(Pandas)에서 빅 데이터(Spark)로!

    ... 더 보기

     • 

    댓글 1 • 저장 29 • 조회 3,713


    이력서에서 소프트스킬을 어떻게 보여줄 수 있을까요?

    ... 더 보기

    LinkedIn Seulki Kang 페이지: 소프트스킬이 드러나는 이력서, 데이터분석가 도메인 분야

    www.linkedin.com

    LinkedIn Seulki Kang 페이지: 소프트스킬이 드러나는 이력서, 데이터분석가 도메인 분야

     • 

    저장 48 • 조회 5,902