WITH(CTE)

์˜๋ฏธ

  • DB์— table๋กœ ์ €์žฅ๋˜์–ด์žˆ์ง€ ์•Š์ง€๋งŒ, ์ž„์‹œ๋กœ ํ…Œ์ด๋ธ”์ฒ˜๋Ÿผ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ์„ ๊ฑฐ์ž„. ์„œ๋ธŒ์ฟผ๋ฆฌ๋กœ ๋งŒ๋“ค๊ธฐ ๋ณด๋‹ค๋Š” ์ž„์‹œ๋กœ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด์„œ ํ™œ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋จ

  • CTE : Common Table Expression์˜ ์•ฝ์ž

  • WITH ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž„์‹œํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค์–ด์„œ ์‚ฌ์šฉํ•จ

๊ตฌ๋ฌธ

  • WITH <ํ…Œ์ด๋ธ” ์ด๋ฆ„> AS (SELECT ~)

  • ์˜ˆ์‹œ

    WITH
    production_sale_ranking AS (
        SELECT
            category_name,
            product_id,
            sales,
            ROW_NUMBER() OVER(PARTITION BY category_name ORDER BY sales DESC) AS rank
        FROM
            product_sales
    ),
    mst_rank AS (
        SELECT DISTINCT rank
        FROM product_sale_ranking
    )
    SELECT *
    FROM mst_rank
    • WITH ๊ตฌ๋ฌธ์œผ๋กœ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ฆ

    • ๋ณธ๊ฒฉ์ ์ธ SELECT ๊ตฌ๋ฌธ๋ณด๋‹ค ์œ„์—์„œ ์„ ์–ธํ•ด์•ผ ํ•จ

    • ์—ฌ๋Ÿฌ๊ฐœ์˜ ์ž„์‹œํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ์‹ถ์œผ๋ฉด ์ปด๋งˆ(,)๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ์„ ์–ธํ•ด์คŒ

    • ์•ž์—์„œ ์„ ์–ธํ•˜๋Š” ํ…Œ์ด๋ธ”์—์„œ๋Š” ๋’ค์— ์˜ฌ ํ…Œ์ด๋ธ”์„ ์ฐธ์กฐํ•˜์ง€ ๋ชปํ•จ. ์—ฌ๊ธฐ์„œ๋Š” mst_rank๊ฐ€ production_sale_ranking๋ฅผ ์ฐธ์กฐํ•จ. production_sale_ranking๊ฐ€ mst_rank๋ฅผ ์ฐธ์กฐํ•  ์ˆ˜ ์—†์Œ

Last updated