๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค 100๋ฒˆ์˜ ๋…ธํฌ(๊ตฌ์กฐํ™” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌํŽธ)- SQL Part 3 (Q41 to Q60)

๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธ์Šค
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, 'WITH' ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ 'sales_amount_by_date'์™€ 'sales_amount_by_date_with_lag'๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  'sales_amount_by_date_with_lag' ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ์—ด์„ ์„ ํƒํ•˜๊ณ  'LAG' ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ์†๋œ ๋‚ ์งœ ๊ฐ„์˜ ๋งค์ถœ ๊ธˆ์•ก ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค.

์ฒซ ๋ฒˆ์งธ 'WITH' ์ ˆ์€ 'sales_amount_by_date'๋ผ๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  'RECIPATE' ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋‚ ์งœ๋ณ„ ๋งค์ถœ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๋‘ ๋ฒˆ์งธ 'WITH' ์ ˆ์€ 'sales_amount_by_date_with_lag'๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ , 'LAG' ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ „๋‚ ์˜ ๋งค์ถœ ๊ธˆ์•ก๊ณผ ์—ฐ์†๋œ ๋‚ ์งœ ์‚ฌ์ด์˜ ๋งค์ถœ ๊ธˆ์•ก์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๋งˆ์ง€๋ง‰ 'SELECT' ๋ฌธ์—์„œ๋Š” 'sales_amount_by_date_with_lag' ํ…Œ์ด๋ธ”์—์„œ ํŒ๋งค์ผ, ํŒ๋งค๊ธˆ์•ก, ์ „๋‚ , ์ด์ „ ํŒ๋งค๊ธˆ์•ก, ์—ฐ์†๋œ ๋‚ ์งœ์˜ ํŒ๋งค๊ธˆ์•ก ์ฐจ์ด ๋“ฑ์˜ ์—ด์„ ์„ ํƒํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๋Š” ํŒ๋งค ๋‚ ์งœ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์œผ๋กœ ์ œํ•œ๋œ๋‹ค.

์š”์•ฝํ•˜๋ฉด, ์ด ์ฝ”๋“œ๋Š” "LAG" ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ "์˜์ˆ˜์ฆ" ํ…Œ์ด๋ธ”์˜ ์—ฐ์†๋œ ๋‚ ์งœ ์‚ฌ์ด์˜ ํŒ๋งค ๊ธˆ์•ก ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์˜ ๊ฒฐ๊ณผ๋ฅผ ํ‘œ์‹œํ•œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋„ SQL ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, 'WITH' ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ 'sales_amount_by_date'์™€ 'sales_amount_lag_date'๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  'sales_amount_lag_date' ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์ž์ฒด ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ 'WITH' ์ ˆ์€ 'sales_amount_by_date'๋ผ๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ , 'receive' ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋‚ ์งœ๋ณ„ ๋งค์ถœ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๋‘ ๋ฒˆ์งธ 'WITH' ์ ˆ์€ 'sales_amount_lag_date'๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  'LAG' ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'sales_amount_by_date' ํ…Œ์ด๋ธ”์˜ 3์ผ ์ „ ํŒ๋งค์ผ๊ณผ ๊ฐ ๋‚ ์งœ์˜ ํŒ๋งค๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•œ๋‹ค.

๋งˆ์ง€๋ง‰ 'SELECT' ๋ฌธ์€ 'sales_amount_lag_date' ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ์—ด์„ ์„ ํƒํ•˜์—ฌ ์ž์‹ ๊ณผ ์ž์ฒด ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๊ฒฐํ•ฉ ์กฐ๊ฑด์€ ํ•œ ํ–‰์˜ ํŒ๋งค์ผ์ด ๋‹ค๋ฅธ ํ–‰์˜ ํŒ๋งค์ผ๋ณด๋‹ค ์ž‘๊ณ , ๋‘ ๋ฒˆ์งธ ํ–‰์˜ ํŒ๋งค์ผ์ด 3์ผ ์ „์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ ํŒ๋งค์ผ ์ดํ•˜์ธ ํ–‰๋งŒ ํฌํ•จํ•˜๋„๋ก ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๋Š” ํŒ๋งค์ผ๊ณผ ์ด์ „ ํŒ๋งค์ผ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌ๋˜์–ด ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, ์ด ์ฝ”๋“œ๋Š” 'receipt' ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋‚ ์งœ๋ณ„ ๋งค์ถœ ๋‚ ์งœ์™€ ๋งค์ถœ ๊ธˆ์•ก์ด ํฌํ•จ๋œ ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ์ž์ฒด ๊ฒฐํ•ฉ์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐํ•ฉ ์กฐ๊ฑด์€ ํ•œ ํ–‰์˜ ๋งค์ถœ ๋‚ ์งœ๊ฐ€ ๋‹ค๋ฅธ ํ–‰์˜ ๋งค์ถœ ๋‚ ์งœ๋ณด๋‹ค ์ž‘๊ณ , ๋‘ ๋ฒˆ์งธ ํ–‰์˜ ๋งค์ถœ ๋‚ ์งœ๊ฐ€ 3์ผ ์ „์˜ ์ฒซ ๋ฒˆ์งธ ํ–‰์˜ ๋งค์ถœ ๋‚ ์งœ ์ดํ•˜์ธ ํ–‰๋งŒ ํฌํ•จํ•˜๋„๋ก ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ฒ˜์Œ 10๊ฐœ ํ–‰์˜ ํŒ๋งค์ผ, ํŒ๋งค๊ธˆ์•ก, ์ด์ „ ํŒ๋งค์ผ, ์ด์ „ ํŒ๋งค๊ธˆ์•ก์ด ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋„ SQL ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, 'WITH' ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ 'sales_amount_by_date'๋ผ๋Š” ์ด๋ฆ„์˜ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค. ๋‹ค์Œ์œผ๋กœ 'LAG' ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 'sales_amount_with_lag'๋ผ๋Š” ์ด๋ฆ„์˜ ๋˜ ๋‹ค๋ฅธ ์ž„์‹œ ํ…Œ์ด๋ธ”์— ์ถ”๊ฐ€ ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค. ๋งˆ์ง€๋ง‰์œผ๋กœ 'sales_amount_with_lag' ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ์ปฌ๋Ÿผ์„ ์„ ํƒํ•˜์—ฌ ํŠน์ • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฒ˜๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒซ ๋ฒˆ์งธ "WITH" ์ ˆ์€ "sales_amount_by_date"๋ผ๋Š” ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  "receive" ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋‚ ์งœ๋ณ„ ๋งค์ถœ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

๋‘ ๋ฒˆ์งธ "WITH" ์ ˆ์€ "sales_amount_with_lag"๋ผ๋Š” ๋˜ ๋‹ค๋ฅธ ์ž„์‹œ ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•˜๊ณ  "sales_amount_by_date" ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋‚ ์งœ์˜ ํŒ๋งค ๊ธˆ์•ก๊ณผ ์ด์ „ 3 ์ผ๊ฐ„์˜ ํŒ๋งค ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ธฐ ์œ„ํ•ด "LAG" ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ "SELECT" ๋ฌธ์€ "sales_amount_with_lag" ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ์—ด์„ ์„ ํƒํ•˜๊ณ , 3 ์ผ ์ „ ๋‚ ์งœ๊ฐ€ NULL์ด ์•„๋‹Œ ํ–‰๋งŒ ํฌํ•จํ•˜๋„๋ก ๊ฒฐ๊ณผ๋ฅผ ํ•„ํ„ฐ๋งํ•œ๋‹ค. ์ฆ‰, ํ…Œ์ด๋ธ”์˜ ์ฒซ ๋‘ ํ–‰์€ ์„ธ ๋ฒˆ์งธ ์ด์ „ ๋‚ ์งœ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ œ์™ธ๋œ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ ๊ฒฐ๊ณผ๋ฅผ ํŒ๋งค ๋‚ ์งœ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•˜์—ฌ ์ฒ˜์Œ 10 ๊ฐœ ํ–‰์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝํ•˜๋ฉด, ์ด ์ฝ”๋“œ๋Š” "์˜์ˆ˜์ฆ" ํ…Œ์ด๋ธ”์˜ ๊ฐ ๋‚ ์งœ์˜ ํŒ๋งค ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  "LAG" ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ ๋‚ ์งœ์˜ ์ด์ „ 3 ์ผ์˜ ํŒ๋งค ๋‚ ์งœ์™€ ํŒ๋งค ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๊ฐ ๋‚ ์งœ์˜ ํŒ๋งค์ผ๊ณผ ํŒ๋งค๊ธˆ์•ก, ์ด์ „ 3์ผ๊ฐ„์˜ ํŒ๋งค์ผ๊ณผ ํŒ๋งค๊ธˆ์•ก์„ ํ‘œ์‹œํ•œ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ฒ˜์Œ ๋‘ ํ–‰์€ ์„ธ ๋ฒˆ์งธ ์ด์ „ ๋‚ ์งœ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์ œ์™ธํ•˜๋„๋ก ํ•„ํ„ฐ๋ง๋œ๋‹ค. ๊ฒฐ๊ณผ์˜ ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์€ ๋งค์ถœ ๋‚ ์งœ์˜ ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด SQL ์ฝ”๋“œ์—์„œ๋Š” ์—ฐ๋ น๋Œ€(์‹œ๋Œ€)์™€ ์„ฑ๋ณ„์— ๋”ฐ๋ฅธ ๋งค์ถœ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ์ •๋ฆฌํ•œ sales_summary๋ผ๋Š” ํ…Œ์ด๋ธ”์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋จผ์ € ๊ณ ๊ฐ ํ…Œ์ด๋ธ”๊ณผ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์„ ๊ฒฐํ•ฉํ•˜์—ฌ gender_era_amount๋ผ๋Š” ๊ณตํ†ต ํ…Œ์ด๋ธ” ํ‘œํ˜„์‹(CTE)์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ์ด CTE๋Š” ์—ฐ๋ น๋Œ€(์‹œ๋Œ€)์™€ ์„ฑ๋ณ„์— ๋”ฐ๋ผ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ์ด ๋งค์ถœ์•ก์„ ๊ณ„์‚ฐํ•œ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ gender_era_amount CTE์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ง‘๊ณ„ํ•˜์—ฌ sales_summary ํ…Œ์ด๋ธ”์ด ์ƒ์„ฑ๋œ๋‹ค. ์ด ํ…Œ์ด๋ธ”์—๋Š” ์‹œ๋Œ€, ๋‚จ์„ฑ, ์—ฌ์„ฑ, ์—ฌ์„ฑ, ์•Œ ์ˆ˜ ์—†์Œ์˜ 4๊ฐœ ์ปฌ๋Ÿผ์ด ์žˆ์œผ๋ฉฐ, SELECT ๊ตฌ๋ฌธ ๋‚ด์˜ SUM(CASE...) ๋ฌธ์€ ์„ฑ๋ณ„๋ณ„ ๋งค์ถœ ๊ธˆ์•ก์„ ๋ณ„๋„์˜ ์—ด๋กœ ํ”ผ๋ฒ—ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ ์ƒ์„ฑ๋œ sales_summary ํ…Œ์ด๋ธ”์—์„œ ๋ชจ๋“  ํ–‰์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
ย 
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, customer๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ customer ํ…Œ์ด๋ธ”์—์„œ customer_id์™€ birth_day ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์˜ค๊ณ , birth_day ์ปฌ๋Ÿผ์„ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ์„œ์‹์„ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ customer ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  LIMIT ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ 10ํ–‰์œผ๋กœ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค.

TO_CHAR ํ•จ์ˆ˜๋Š” birth_day ์ปฌ๋Ÿผ์„ ์ง€์ •๋œ ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ํ˜•์‹์€ 'YYYYMMDD'์ด๋ฉฐ, ์ƒ์ผ์˜ ๋…„, ์›”, ์ผ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์˜ ๊ธธ์ด๋Š” 8์ž์ด๋ฉฐ, ์—ฐ๋„๋Š” 4์ž, ์›”์€ 2์ž, ์ผ์€ 2์ž๋กœ ํ‘œํ˜„๋œ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ birth_day๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” customer_id์™€ birth_day๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, birth_day ์—ด์—๋Š” ๊ฐ ๊ณ ๊ฐ์˜ ์ƒ๋…„์›”์ผ์ด ์ง€์ •๋œ ํ˜•์‹์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” customer ํ…Œ์ด๋ธ”์—์„œ customer_id์™€ birth_day ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์˜ค๊ณ  birth_day ์ปฌ๋Ÿผ์„ ํŠน์ • ๋ฐฉ์‹์œผ๋กœ ์„œ์‹์„ ์ง€์ •ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ถ„์„์ด๋‚˜ ๋ณด๊ณ ์„œ ์ž‘์„ฑ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

ย 

์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, customer๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ customer ํ…Œ์ด๋ธ”์—์„œ customer_id ์—ด๊ณผ application_date ์—ด์„ ๊ฐ€์ ธ์™€ application_date ์—ด์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ customer ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  LIMIT ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ 10ํ–‰์œผ๋กœ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค.

TO_DATE ํ•จ์ˆ˜๋Š” application_date ์ปฌ๋Ÿผ์„ ๋ฌธ์ž์—ด์—์„œ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ํ˜•์‹์€ 'YYYYMMDD'์ด๋ฉฐ, ์‹ ์ฒญ์ผ์˜ ๋…„, ์›”, ์ผ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋‚ ์งœ ๊ฐ’์€ yyyy-mm-dd ํ˜•์‹์ด ๋œ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ application_date๋กœ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” customer_id์™€ application_date๋ผ๋Š” ๋‘ ๊ฐœ์˜ ์ปฌ๋Ÿผ์ด ํฌํ•จ๋˜๋ฉฐ, application_date ์ปฌ๋Ÿผ์—๋Š” ๊ฐ ๊ณ ๊ฐ์˜ ์‹ ์ฒญ ๋‚ ์งœ๊ฐ€ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์—์„œ customer_id์™€ application_date ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์™€ application_date ์ปฌ๋Ÿผ์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ํŠนํžˆ ๋‚ ์งœ ๊ณ„์‚ฐ์ด๋‚˜ ๋น„๊ต๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ ๋ถ„์„์ด๋‚˜ ๋ณด๊ณ ์„œ ์ž‘์„ฑ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, receipt๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ reciport ํ…Œ์ด๋ธ”์—์„œ reciport_no, reciport_sub_no, sales_ymd ์—ด์„ ๊ฐ€์ ธ์™€ sales_ymd ์—ด์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

SELECT ๋ฌธ์€ RECIPATE ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, LIMIT ๊ตฌ๋ฌธ์€ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰์˜ ์ˆ˜๋ฅผ 10์œผ๋กœ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

CAST ํ•จ์ˆ˜๋Š” sales_ymd ์ปฌ๋Ÿผ์„ ์ •์ˆ˜์—์„œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์—๋Š” 'YYYYMMDD' ํ˜•์‹์œผ๋กœ ํŒ๋งค ๋‚ ์งœ์˜ ๋…„, ์›”, ์ผ์ด ํฌํ•จ๋  ๊ฒƒ์ด๋‹ค.

TO_DATE ํ•จ์ˆ˜๋Š” sales_ymd์˜ ๋ฌธ์ž์—ด์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด ๊ฒฝ์šฐ ํ˜•์‹์€ 'YYYYMMDD'์ด๋ฉฐ, ์ด๋Š” ํŒ๋งค ๋‚ ์งœ์˜ ๋…„, ์›”, ์ผ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฒฐ๊ณผ ๋‚ ์งœ ๊ฐ’์€ yyyy-mm-dd ํ˜•์‹์ด ๋œ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ sales_ymd๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” receive_no, receive_sub_no, sales_ymd์˜ ์„ธ ๊ฐœ์˜ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, sales_ymd ์—ด์—๋Š” ๊ฐ ์˜์ˆ˜์ฆ์˜ ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” receipt ํ…Œ์ด๋ธ”์—์„œ receive_no, receive_sub_no, sales_ymd ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์˜ค๊ณ  sales_ymd ์ปฌ๋Ÿผ์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ํŠนํžˆ ๋‚ ์งœ ๊ณ„์‚ฐ์ด๋‚˜ ๋น„๊ต๊ฐ€ ํฌํ•จ๋˜๋Š” ๊ฒฝ์šฐ ๋ถ„์„์ด๋‚˜ ๋ณด๊ณ ์„œ ์ž‘์„ฑ์— ์œ ์šฉํ•˜๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, receiport๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ receive ํ…Œ์ด๋ธ”์—์„œ receive_no, receive_sub_no, sales_epoch ์—ด์„ ๊ฐ€์ ธ์™€ sales_epoch ์—ด์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ณ  LIMIT ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ 10ํ–‰์œผ๋กœ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค.

TO_TIMESTAMP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sales_epoch ์ปฌ๋Ÿผ์„ ์ •์ˆ˜ ๊ฐ’์—์„œ ํƒ€์ž„์Šคํƒฌํ”„ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. ๊ฒฐ๊ณผ ํƒ€์ž„์Šคํƒฌํ”„๋Š” 1970๋…„ 1์›” 1์ผ 00:00:00:00 UTC๋กœ๋ถ€ํ„ฐ ๋ช‡ ์ดˆ๊ฐ€ ์ง€๋‚ฌ๋Š”์ง€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

CAST ํ•จ์ˆ˜๋Š” ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฒฐ๊ณผ ๋‚ ์งœ ๊ฐ’์€ yyyy-mm-dd ํ˜•์‹์ด ๋œ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ sales_ymd๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” receive_no, receive_sub_no, sales_ymd ์„ธ ๊ฐœ์˜ ์ปฌ๋Ÿผ์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, sales_ymd ์ปฌ๋Ÿผ์—๋Š” ๊ฐ ์˜์ˆ˜์ฆ์˜ ํŒ๋งค ๋‚ ์งœ๊ฐ€ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” receipt ํ…Œ์ด๋ธ”์—์„œ receipt_no, receive_sub_no ๋ฐ sales_epoch ์—ด์„ ๊ฐ€์ ธ์˜ค๊ณ  sales_epoch ์—ด์„ ๋‚ ์งœ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ํŠนํžˆ ๋‚ ์งœ ๊ณ„์‚ฐ์ด๋‚˜ ๋น„๊ต๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋ถ„์„์ด๋‚˜ ๋ณด๊ณ ์„œ ์ž‘์„ฑ์— ์œ ์šฉํ•˜๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, receiport๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ receive ํ…Œ์ด๋ธ”์—์„œ receive_no, receive_sub_no, sales_epoch ์—ด์„ ๊ฐ€์ ธ์˜ค๊ณ , sales_epoch์˜ ํƒ€์ž„์Šคํƒฌํ”„ ์—ด์—์„œ ์—ฐ๋„๋ฅผ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ์œ„ํ•ด SELECT ๋ฌธ์„ ์‚ฌ์šฉํ•˜๊ณ , LIMIT ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ 10ํ–‰์œผ๋กœ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค.

TO_TIMESTAMP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sales_epoch ์—ด์„ ์ •์ˆ˜ ๊ฐ’์—์„œ ํƒ€์ž„์Šคํƒฌํ”„ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค. ๊ฒฐ๊ณผ ํƒ€์ž„์Šคํƒฌํ”„๋Š” 1970๋…„ 1์›” 1์ผ 00:00:00:00 UTC๋กœ๋ถ€ํ„ฐ์˜ ์ดˆ ๋‹จ์œ„๊ฐ€ ๋œ๋‹ค.

EXTRACT ํ•จ์ˆ˜๋Š” sales_epoch์˜ ํƒ€์ž„์Šคํƒฌํ”„์—์„œ ์—ฐ๋„๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฒฐ๊ณผ ๊ฐ’์€ ์—ฐ๋„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ sales_year๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” receive_no, receive_sub_no, sales_year์˜ ์„ธ ๊ฐœ์˜ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, sales_year ์—ด์—๋Š” ๊ฐ ์˜์ˆ˜์ฆ์˜ ํŒ๋งค์ผ ์—ฐ๋„๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” receipt ํ…Œ์ด๋ธ”์—์„œ receipt_no, receive_sub_no ๋ฐ sales_epoch ์—ด์„ ๊ฐ€์ ธ์˜ค๊ณ  sales_epoch ํƒ€์ž„์Šคํƒฌํ”„ ์—ด์—์„œ ์—ฐ๋„๋ฅผ ์ถ”์ถœํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ์ถ”์ถœ๋œ ๋ฐ์ดํ„ฐ๋Š” ํŒ๋งค์ผ ์—ฐ๋„์— ๋”ฐ๋ผ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, receiport๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ receiport ํ…Œ์ด๋ธ”์—์„œ receiport_no, receiport_sub_no, sales_epoch ์—ด์„ ๊ฐ€์ ธ์˜ค๊ณ , sales_epoch ํƒ€์ž„์Šคํƒฌํ”„ ์—ด์—์„œ ์›”์„ ์ถ”์ถœํ•˜๊ณ , ๊ฒฐ๊ณผ ์›”์„ ์•ž์˜ 0์ด ๋‘ ์ž๋ฆฌ ์ˆซ์ž๋กœ ๋œ ๋ฌธ์ž์—ด๋กœ ํฌ๋งทํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

SELECT ๋ฌธ์€ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, LIMIT ๊ตฌ๋ฌธ์€ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ 10์œผ๋กœ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

TO_TIMESTAMP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sales_epoch ์ปฌ๋Ÿผ์„ ์ •์ˆ˜ ๊ฐ’์—์„œ ํƒ€์ž„์Šคํƒฌํ”„ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. ๊ฒฐ๊ณผ ํƒ€์ž„์Šคํƒฌํ”„๋Š” 1970๋…„ 1์›” 1์ผ 00:00:00:00 UTC๋กœ๋ถ€ํ„ฐ์˜ ์ดˆ ๋‹จ์œ„๊ฐ€ ๋œ๋‹ค.

EXTRACT ํ•จ์ˆ˜๋Š” sales_epoch์˜ ํƒ€์ž„์Šคํƒฌํ”„์—์„œ ์›”์„ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ๊ฒฐ๊ณผ ๊ฐ’์€ ์›”์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

TO_CHAR ํ•จ์ˆ˜๋Š” ์ถ”์ถœ๋œ ์›”์„ ํ•„์š”์— ๋”ฐ๋ผ ์•ž์˜ 0์ด ํฌํ•จ๋œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, 'FM00' ํ˜•์‹ ๋ฌธ์ž์—ด์€ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์ด ๊ณ ์ •๋œ ํญ์˜ 2์ž์ด๋ฉฐ ์•ž์˜ 0์€ ์ œ๊ฑฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ง€์ •ํ•œ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ sales_month๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” receive_no, receive_sub_no ๋ฐ sales_month์˜ ์„ธ ๊ฐœ์˜ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, sales_month ์—ด์—๋Š” ๊ฐ ์˜์ˆ˜์ฆ์˜ ํŒ๋งค ๋‚ ์งœ์˜ ์›”์ด ๋งจ ์•ž์˜ 0์„ ํฌํ•จํ•œ 2์ž๋ฆฌ ๋ฌธ์ž์—ด๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” reciport ํ…Œ์ด๋ธ”์—์„œ reciport_no, reciport_sub_no ๋ฐ sales_epoch ์—ด์„ ๊ฐ€์ ธ์™€ sales_epoch ํƒ€์ž„์Šคํƒฌํ”„ ์—ด์—์„œ ์›”์„ ์ถ”์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ ์›”์„ ์•ž์˜ 0์ด ํฌํ•จ๋œ 2์ž๋ฆฌ ๋ฌธ์ž์—ด๋กœ ์„œ์‹์„ ์ง€์ •ํ•œ๋‹ค. ์›ํ•˜๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•˜๋‹ค. ์ด ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ํŒ๋งค์ผ ์›”์„ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.

ย 

์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, receiport๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ receiport ํ…Œ์ด๋ธ”์—์„œ receiport_no, receiport_sub_no, sales_epoch ์—ด์„ ๊ฐ€์ ธ์˜ค๊ณ , sales_epoch ํƒ€์ž„์Šคํƒฌํ”„ ์—ด์—์„œ ๋‚ ์งœ๋ฅผ ์ถ”์ถœํ•˜๊ณ , ๊ฒฐ๊ณผ ๋‚ ์งœ๋ฅผ ์•ž์˜ 0์ด ๋‘ ์ž๋ฆฌ ์ˆซ์ž๋กœ ๋œ ๋ฌธ์ž์—ด๋กœ ํฌ๋งทํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

SELECT ๋ฌธ์€ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, LIMIT ๊ตฌ๋ฌธ์€ ๋ฐ˜ํ™˜๋˜๋Š” ํ–‰ ์ˆ˜๋ฅผ 10์œผ๋กœ ์ œํ•œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

TO_TIMESTAMP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sales_epoch ์ปฌ๋Ÿผ์„ ์ •์ˆ˜ ๊ฐ’์—์„œ ํƒ€์ž„์Šคํƒฌํ”„ ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ณ  ์žˆ๋‹ค. ๊ฒฐ๊ณผ ํƒ€์ž„์Šคํƒฌํ”„๋Š” 1970๋…„ 1์›” 1์ผ 00:00:00:00 UTC๋กœ๋ถ€ํ„ฐ์˜ ์ดˆ ๋‹จ์œ„๊ฐ€ ๋œ๋‹ค.

EXTRACT ํ•จ์ˆ˜๋Š” sales_epoch์˜ ํƒ€์ž„์Šคํƒฌํ”„์—์„œ ๋‚ ์งœ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ๊ฐ’์€ ๋‚ ์งœ๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ์ •์ˆ˜๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

TO_CHAR ํ•จ์ˆ˜๋Š” ์ถ”์ถœ๋œ ๋‚ ์งœ๋ฅผ ํ•„์š”์— ๋”ฐ๋ผ ์•ž์˜ 0์ด ํฌํ•จ๋œ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋ฉฐ, 'FM00' ํ˜•์‹ ๋ฌธ์ž์—ด์€ ๊ฒฐ๊ณผ ๋ฌธ์ž์—ด์ด ๊ณ ์ •๋œ ํญ์˜ 2์ž์ด๋ฉฐ ์•ž์˜ 0์ด ์ œ๊ฑฐ๋œ๋‹ค๋Š” ๊ฒƒ์„ ์ง€์ •ํ•œ๋‹ค.

AS ํ‚ค์›Œ๋“œ๋Š” ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์„ sales_day๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด SELECT ๋ฌธ ๊ฒฐ๊ณผ ์ง‘ํ•ฉ์—๋Š” receive_no, receive_sub_no, sales_day์˜ ์„ธ ๊ฐœ์˜ ์—ด์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, sales_day ์—ด์—๋Š” ๊ฐ ์˜์ˆ˜์ฆ์˜ ํŒ๋งค์ผ ๋‚ ์งœ๊ฐ€ ๋งจ ์•ž์˜ 0์„ ํฌํ•จํ•œ 2์ž๋ฆฌ ๋ฌธ์ž์—ด๋กœ ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” reciport ํ…Œ์ด๋ธ”์—์„œ reciport_no, reciport_sub_no, sales_epoch ์ปฌ๋Ÿผ์„ ๊ฐ€์ ธ์˜ค๊ณ , sales_epoch ํƒ€์ž„์Šคํƒฌํ”„ ์ปฌ๋Ÿผ์—์„œ ๋‚ ์งœ๋ฅผ ์ถ”์ถœํ•˜๊ณ , ๊ฒฐ๊ณผ ๋‚ ์งœ๋ฅผ ์•ž์˜ 0์ด ํฌํ•จ๋œ ๋‘ ์ž๋ฆฌ ๋ฌธ์ž์—ด๋กœ ํฌ๋งทํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ์ด ํ˜•์‹ํ™”๋œ ๋ฐ์ดํ„ฐ๋Š” ํŒ๋งค์ผ ๋‚ ์งœ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ฑฐ๋‚˜ ํ•„ํ„ฐ๋งํ•˜๋Š” ๋ฐ ์œ ์šฉํ•˜๋‹ค.

ย 

์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” receive๋ผ๋Š” ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜๊ณ  ์žˆ๋‹ค. ์ด ์ฝ”๋“œ์˜ ๋ชฉ์ ์€ RECIPATE ํ…Œ์ด๋ธ”์˜ ๊ฐ ๊ณ ๊ฐ์˜ ๋งค์ถœ ์ด์•ก์„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ ๊ณ ๊ฐ์˜ ๋งค์ถœ ์ด์•ก์ด 2000๋ณด๋‹ค ํฐ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

SELECT ๋ฌธ์€ customer_id ์—ด, SUM ํ•จ์ˆ˜๋กœ ๊ณ„์‚ฐํ•œ ๊ฐ ๊ณ ๊ฐ์˜ ๋งค์ถœ ์ด์•ก, ๋งค์ถœ ์ด์•ก์ด 2000๋ณด๋‹ค ํฌ๋ฉด 1, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด 0์„ ๋ฐ˜ํ™˜ํ•˜๋Š” CASE ์‹์„ ๊ฐ€์ ธ์˜จ๋‹ค. ํ”Œ๋ž˜๊ทธ๊ฐ€ ํฌํ•จ๋œ ๊ฒฐ๊ณผ ์ปฌ๋Ÿผ์€ sales_flg๋กœ ๋ช…๋ช…ํ•œ๋‹ค.

WHERE ์ ˆ์€ ๊ณ ๊ฐ ID๊ฐ€ 'Z'๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ ˆ์ฝ”๋“œ๋ฅผ ํ•„ํ„ฐ๋งํ•˜์—ฌ ์ œ์™ธํ•œ๋‹ค. ์ด๋Š” ํŠน์ • ๊ณ ๊ฐ์„ ๊ณ„์‚ฐ์ด๋‚˜ ํ”Œ๋ž˜๊ทธ ์„ค์ •์—์„œ ์ œ์™ธํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

GROUP BY ๊ตฌ๋ฌธ์€ ๊ณ ๊ฐ๋ณ„ ์ด ๋งค์ถœ ๊ธˆ์•ก๊ณผ ํ”Œ๋ž˜๊ทธ๊ฐ€ ๊ณ„์‚ฐ๋˜๋„๋ก ๊ฒฐ๊ณผ๋ฅผ ๊ณ ๊ฐ ID๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค.

LIMIT ์ ˆ์€ ์ถœ๋ ฅ์„ ์ฒ˜์Œ 10๊ฐœ์˜ ๊ฒฐ๊ณผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์˜ ๊ฐ ๊ณ ๊ฐ์— ๋Œ€ํ•œ ์ด ํŒ๋งค์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ  ์ด ํŒ๋งค์•ก์ด ํŠน์ • ์ž„๊ณ„๊ฐ’(์ด ๊ฒฝ์šฐ 2000)๋ณด๋‹ค ํฐ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ํ”Œ๋ž˜๊ทธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ ์•ก ์‡ผํ•‘์„ ํ•˜๋Š” ๊ณ ๊ฐ์„ ์‹๋ณ„ํ•˜๊ฑฐ๋‚˜ ๊ณ ๊ฐ์˜ ๋งค์ถœ ๊ธˆ์•ก์„ ์ง‘๊ณ„ํ•˜์—ฌ ๋ถ„์„ํ•ด์•ผ ํ•˜๋Š” ๋‹ค๋ฅธ ์œ ํ˜•์˜ ๋ถ„์„์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ย 

์„ค๋ช…:

์ด SQL ์ฝ”๋“œ์—๋Š” cust๋ผ๋Š” ๊ณตํ†ต ํ…Œ์ด๋ธ” ํ‘œํ˜„์‹(CTE)์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, customer ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์„ ํƒํ•˜์—ฌ postal_cd๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๊ณ ๊ฐ์˜ postal_flg ํ”Œ๋ž˜๊ทธ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

postal_flg ํ”Œ๋ž˜๊ทธ๋Š” CASE ์ˆ˜์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์‚ฐ๋˜๋ฉฐ, postal_cd์˜ ์ฒซ ์„ธ ๊ธ€์ž๊ฐ€ 100์—์„œ 209(ํฌํ•จ)๊นŒ์ง€์ธ์ง€ ํ™•์ธํ•˜๊ณ , ์ฐธ์ด๋ฉด 1, ๊ฑฐ์ง“์ด๋ฉด 0์ด๋ผ๋Š” ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค. ์ด ํ”Œ๋ž˜๊ทธ๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด ์šฐํŽธ๋ฒˆํ˜ธ ๋ฒ”์œ„์— ๋”ฐ๋ผ ๊ณ ๊ฐ์„ ๊ทธ๋ฃนํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋‘ ๋ฒˆ์งธ CTE์ธ rect๋Š” recipate ํ…Œ์ด๋ธ”์—์„œ ๊ฐœ๋ณ„ customer_id๋ฅผ ์„ ํƒํ•œ๋‹ค.

๋งˆ์ง€๋ง‰ SELECT ๋ฌธ์€ customer_id ์—ด์—์„œ cust์™€ rect CTE๋ฅผ ๊ฒฐํ•ฉํ•˜๊ณ , postal_flg ์—ด์—์„œ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๋ฉฐ, COUNT(DISTINCT c.customer_id) ํ•จ์ˆ˜๋Š” ๊ฐ postal_flg ๊ฐ’์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๊ณ ๊ฐ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค. ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๊ณ ๊ฐ ํ…Œ์ด๋ธ”๊ณผ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์šฐํŽธ๋ฒˆํ˜ธ ๋ฒ”์œ„์— ๋”ฐ๋ผ ๊ณ ๊ฐ์„ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ๊ฐ ๋ฒ”์œ„์˜ ๋‹ค๋ฅธ ๊ณ ๊ฐ ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค.

ย 

์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” customer ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ๊ณ ๊ฐ์˜ customer_id, address, prefecture_cd code๋ฅผ ์„ ํƒํ•œ๋‹ค.

์ด ์ฝ”๋“œ์˜ CASE ํ‘œํ˜„์‹์€ address ์—ด์˜ ์ฒซ 3๊ธ€์ž๋ฅผ ์ฒดํฌํ•˜๊ณ  ๋‹ค์Œ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ•ด๋‹น prefecture_cd์˜ ๊ฐ’์„ ํ• ๋‹นํ•œ๋‹ค.

์ฃผ์†Œ๋ž€์˜ ์ฒซ 3๊ธ€์ž๊ฐ€ '์‚ฌ์ดํƒ€๋งˆํ˜„'์ด๋ฉด prefecture_cd ๊ฐ’์€ '11'๋กœ ์„ค์ •๋œ๋‹ค.

์ฃผ์†Œ๋ž€์˜ ์ฒซ 3๊ธ€์ž๊ฐ€ '์น˜๋ฐ”ํ˜„'์ธ ๊ฒฝ์šฐ, prefecture_cd์˜ ๊ฐ’์€ '12'๋กœ ์„ค์ •๋œ๋‹ค.

์ฃผ์†Œ๋ž€์˜ ์ฒซ 3๊ธ€์ž๊ฐ€ '๋„์ฟ„๋„'์ธ ๊ฒฝ์šฐ, prefecture_cd์˜ ๊ฐ’์€ '13'์œผ๋กœ ์„ค์ •๋œ๋‹ค.

์ฃผ์†Œ๋ž€์˜ ์ฒซ 3๊ธ€์ž๊ฐ€ '๊ฐ€๋‚˜๊ฐ€์™€'์ธ ๊ฒฝ์šฐ, prefecture_cd์˜ ๊ฐ’์€ '14'๋กœ ์„ค์ •๋œ๋‹ค.

์ด ์ฝ”๋“œ๋Š” ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ์ฃผ์†Œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๊ณ ๊ฐ์„ ๋„๋„๋ถ€ํ˜„๋ณ„๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉํ•˜๋‹ค. ๊ฒฐ๊ณผ๊ฐ’์ธ prefecture_cd ์ปฌ๋Ÿผ์€ ์ถ”๊ฐ€ ๋ถ„์„์ด๋‚˜ ๊ทธ๋ฃนํ™”์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

ย 
์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” customer ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ๊ณ ๊ฐ์˜ customer_id, address, prefecture_cd code๋ฅผ ์„ ํƒํ•œ๋‹ค.

์ด ์ฝ”๋“œ์˜ CASE ํ‘œํ˜„์‹์€ ์ •๊ทœ์‹ ํŒจํ„ด '^. *? [๋„๋„๋ถ€ํ˜„]'์„ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ์—ด์—์„œ ๋„๋„๋ถ€ํ˜„ ์ด๋ฆ„์„ ์ถ”์ถœํ•˜๊ณ , ์•„๋ž˜ ์กฐ๊ฑด์— ๋”ฐ๋ผ ํ•ด๋‹น ๋„๋„๋ถ€ํ˜„_cd ๊ฐ’์„ ํ• ๋‹นํ•˜๊ณ  ์žˆ๋‹ค.

์ถ”์ถœ๋œ ๋„๋„๋ถ€ํ˜„ ์ด๋ฆ„์ด '์‚ฌ์ดํƒ€๋งˆํ˜„'์ธ ๊ฒฝ์šฐ, prefecture_cd ๊ฐ’์€ '11'๋กœ ์„ค์ •๋œ๋‹ค.
์ถ”์ถœ๋œ ๋„๋„๋ถ€ํ˜„ ์ด๋ฆ„์ด '์ง€๋ฐ”ํ˜„'์ธ ๊ฒฝ์šฐ, prefecture_cd ๊ฐ’์€ '12'๋กœ ์„ค์ •๋œ๋‹ค.
์ถ”์ถœ๋œ ๋„๋„๋ถ€ํ˜„ ์ด๋ฆ„์ด '๋„์ฟ„๋„'์ธ ๊ฒฝ์šฐ, prefecture_cd์˜ ๊ฐ’์€ '13'์œผ๋กœ ์„ค์ •๋œ๋‹ค.
์ถ”์ถœ๋œ ๋„๋„๋ถ€ํ˜„์ด '๊ฐ€๋‚˜๊ฐ€์™€ํ˜„'์ด๋ผ๋ฉด prefecture_cd์˜ ๊ฐ’์€ '14'๋กœ ์„ค์ •๋œ๋‹ค.

์ด ์ฝ”๋“œ๋Š” ์•ž์˜ ์˜ˆ์ œ์™€ ๋น„์Šทํ•˜์ง€๋งŒ, SUBSTR ํ•จ์ˆ˜ ๋Œ€์‹  SUBSTRING ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ๋ž€์—์„œ ๋„๋„๋ถ€ํ˜„ ์ด๋ฆ„์„ ์ถ”์ถœํ•˜๊ณ  ์žˆ๋‹ค. ์ •๊ทœ ํ‘œํ˜„์‹ ํŒจํ„ด '^. *? [้ƒฝ้“ๅบœ็œŒ]ใ€๋Š” ์ž„์˜์˜ ๋ฌธ์ž(^. *?) ๋กœ ์‹œ์ž‘ํ•ด์„œ ๋„, ์‹œ, ๋„, ๋ถ€, ํ˜„ ์ค‘ ํ•˜๋‚˜๋กœ ๋๋‚˜๋Š” ๋ฌธ์ž์—ด๊ณผ ์ผ์น˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ๋Š” ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์˜ ์ฃผ์†Œ ์ •๋ณด๊ฐ€ ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์•„ ๋„๋„๋ถ€ํ˜„ ๋ช…์นญ์˜ ํ˜•์‹์ด ์ œ๊ฐ๊ฐ์ธ ๊ฒฝ์šฐ์— ์œ ํšจํ•˜๋‹ค. ์ƒ์„ฑ๋œ prefecture_cd ์ปฌ๋Ÿผ์€ ์ถ”๊ฐ€ ๋ถ„์„ ๋ฐ ๊ทธ๋ฃนํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
ย 
์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” customer๋ผ๋Š” ํ…Œ์ด๋ธ”์— ๋Œ€ํ•œ ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ฒ˜์Œ 10ํ–‰์˜ customer_id, address, prefecture_cd ์ปฌ๋Ÿผ์„ ์„ ํƒํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ์น˜ํ•˜๋„๋ก CASE ๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์ฒด์ ์œผ๋กœ CASE ๋ฌธ์žฅ์€ ์ผ๋ณธ์˜ ๋„๋„๋ถ€ํ˜„(์‚ฌ์ดํƒ€๋งˆํ˜„%, ์ง€๋ฐ”ํ˜„%, ๋„์ฟ„๋„%, ๊ฐ€๋‚˜๊ฐ€์™€ํ˜„%) ๋’ค์— ์ž„์˜์˜ ๋ฌธ์ž์—ด์ด ์ด์–ด์ง€๋Š” ๋ฌธ์ž์—ด ํŒจํ„ด๊ณผ LIKE ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์†Œ ์ปฌ๋Ÿผ์„ ํ™•์ธํ•œ๋‹ค. ์ฃผ์†Œ ์ปฌ๋Ÿผ์ด ์–ด๋Š ํ•œ ํŒจํ„ด๊ณผ ์ผ์น˜ํ•˜๋ฉด ํ•ด๋‹น ๋„๋„๋ถ€ํ˜„ ์ฝ”๋“œ(11, 12, 13, 14)๊ฐ€ prefecture_cd ์ปฌ๋Ÿผ์— ๋ถ€์—ฌ๋œ๋‹ค.

์ด ์ฝ”๋“œ๋Š” ์•ž์„œ ์ œ์‹œํ•œ ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€ ์˜ˆ์ œ์™€ ๋น„๊ตํ•˜์—ฌ ์ฃผ์†Œ ์ปฌ๋Ÿผ์—์„œ ๋„๋„๋ถ€ํ˜„ ์ฝ”๋“œ๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋Œ€์ฒด์ ์ธ ๋ฐฉ๋ฒ•์ด๋‹ค.
ย 
์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

SUM ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์˜ ๊ธˆ์•ก ์—ด์„ ๊ณ ๊ฐ ID๋ณ„๋กœ ํ•ฉ์‚ฐํ•˜๊ณ  ๊ณ ๊ฐ ID๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ ๊ณ ๊ฐ์˜ ํŒ๋งค ๊ธˆ์•ก ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ ํ…Œ์ด๋ธ”์€ sales_amount๋ผ๋Š” ์ด๋ฆ„์˜ ํ•˜์œ„ ์ฟผ๋ฆฌ๋กœ ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.

์ฐฝ ํ•จ์ˆ˜์ธ PERCENTILE_CONT ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ sales_amount ํ•˜์œ„ ์ฟผ๋ฆฌ์—์„œ sum_amount ์—ด์˜ ์‚ฌ๋ถ„์œ„์ˆ˜(25์œ„, 50์œ„, 75์œ„)๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

CROSS JOIN ์—ฐ์‚ฐ์œผ๋กœ sales_amount ํ•˜์œ„ ์ฟผ๋ฆฌ์™€ sales_pct ํ•˜์œ„ ์ฟผ๋ฆฌ๋ฅผ ๊ฒฐํ•ฉํ•˜์—ฌ sales_amount ํ…Œ์ด๋ธ”์˜ ๊ฐ ํ–‰์— ๋Œ€ํ•œ ์‚ฌ๋ถ„์œ„์ˆ˜ ๊ฐ’์„ ์–ป๋Š”๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ ์ƒˆ๋กœ์šด ์—ด pct_group์„ ๊ณ„์‚ฐํ•˜์—ฌ ์ด ๋งค์ถœ์•ก์„ ๊ธฐ์ค€์œผ๋กœ ๊ฐ ๊ณ ๊ฐ์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ฐฑ๋ถ„์œ„์ˆ˜ ๊ทธ๋ฃน์„ ํ• ๋‹นํ•œ๋‹ค.

1:sum_amount๊ฐ€ 25๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜๋ณด๋‹ค ์ž‘์€ ๊ฒฝ์šฐ(pct25)
2:sum_amount๊ฐ€ 25๋ฐฑ๋ถ„์œ„์ˆ˜ ์ด์ƒ 50๋ฐฑ๋ถ„์œ„์ˆ˜ ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ(pct50).
3:sum_amount๊ฐ€ 50๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜ ์ด์ƒ 75๋ฒˆ์งธ ๋ฐฑ๋ถ„์œ„์ˆ˜ ๋ฏธ๋งŒ์ธ ๊ฒฝ์šฐ(pct75).
sum_amount๊ฐ€ 75 ๋ฐฑ๋ถ„์œ„์ˆ˜ ์ด์ƒ์ด๋ฉด 4.

์ตœ์ข… ๊ฒฐ๊ณผ๋Š” ์ฒ˜์Œ 10๊ฐœ์˜ ํ–‰์œผ๋กœ ์ œํ•œ๋œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” customer ํ…Œ์ด๋ธ”์—์„œ customer_id, birth_day, era(๊ณ„์‚ฐ ํ•„๋“œ)๋ฅผ ์„ ํƒํ•˜๊ณ , era ํ•„๋“œ๋Š” ๊ณ ๊ฐ์˜ ๋‚˜์ด(๋ช…์‹œ์ ์œผ๋กœ ์„ ํƒ๋˜์ง€ ์•Š์•˜์ง€๋งŒ ๊ณ„์‚ฐ์— ์‚ฌ์šฉ๋จ)๋ฅผ ๊ฒฐ์ •ํ•˜๊ณ , 10์„ธ ๋ฏธ๋งŒ์œผ๋กœ ์ž˜๋ฆฐ ๋‚˜์ด์™€ 60 ์‚ฌ์ด์˜ ๋‚ฎ์€ ๊ฐ’์„ ๊ฐ€์ ธ์™€์„œ ๊ณ„์‚ฐํ•œ๋‹ค. ๋‚ฎ์€ ๊ฐ’์„ ์ทจํ•˜์—ฌ ๊ณ„์‚ฐ๋œ๋‹ค.

๊ฒฐ๊ณผ๋Š” customer_id์™€ birth_day๋กœ ๊ทธ๋ฃนํ™”๋œ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ HAVING ์ ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๋ น์ด 60์„ธ ๋ฏธ๋งŒ์ธ ๊ณ ๊ฐ์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.

์š”์ปจ๋Œ€, ์ด ์ฝ”๋“œ๋Š” ๊ณ ๊ฐ ํ…Œ์ด๋ธ”์—์„œ ๊ณ ๊ฐ ์ •๋ณด๋ฅผ ์„ ํƒํ•˜๊ณ , ๋‚˜์ด์™€ ์‹œ๋Œ€๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ , customer_id์™€ birth_day๋กœ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ์—ฐ๋ น์ด 60์„ธ ๋ฏธ๋งŒ์ธ ๊ณ ๊ฐ์„ ํ•„ํ„ฐ๋งํ•˜๊ณ  ์žˆ๋‹ค.
ย 
์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” customer_id, birth_day, ๊ทธ๋ฆฌ๊ณ  gender_cd์™€ era๋กœ ๊ตฌ์„ฑ๋œ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด์„ ์„ ํƒํ•œ๋‹ค. era๋Š” ๊ณ ๊ฐ์˜ ๋‚˜์ด๋ฅผ 10๋…„ ๋‹จ์œ„๋กœ ๋ฐ˜์˜ฌ๋ฆผํ•œ ๊ฒƒ์œผ๋กœ ์ตœ๋Œ€ era๋Š” 60์„ธ๊นŒ์ง€์ด๋ฉฐ, gender_era์˜ ๋ฌธ์ž์—ด์€ gender_cd์™€ era๋ฅผ ์—ฐ๊ฒฐํ•˜์—ฌ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

SQL ์ฝ”๋“œ๋Š” customer_id์™€ birth_day๋กœ ๊ฒฐ๊ณผ๋ฅผ ๊ทธ๋ฃนํ™”ํ•˜๊ณ  ๊ฒฐ๊ณผ์˜ ์ฒ˜์Œ 10์ค„๋งŒ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ์—ฐ๋ น๊ณผ ์„ฑ๋ณ„์„ ํฌํ•จํ•œ ๊ณ ๊ฐ ๋ฐ์ดํ„ฐ์˜ ์š”์•ฝ์„ ์ƒ์„ฑํ•˜๊ณ  ์‹œ๋Œ€ ์ฐจ์›์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ์ƒ์„ฑ๋œ ํ…Œ์ด๋ธ”์€ ์—ฐ๋ น๊ณผ ์„ฑ๋ณ„์— ๋”ฐ๋ผ ๊ณ ๊ฐ์„ ์ถ”๊ฐ€๋กœ ๋ถ„์„ํ•˜๊ฑฐ๋‚˜ ์„ธ๋ถ„ํ™”ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ย 

์„ค๋ช…:

์ด SQL ์ฝ”๋“œ๋Š” customer_id๋ฅผ ์„ ํƒํ•˜๊ณ  gender_cd_0, gender_cd_1, gender_cd_9๋ผ๋Š” 3๊ฐœ์˜ ์ƒˆ๋กœ์šด ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค. ์ด ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ์€ CASE ๋ฌธ์žฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์–ด์กŒ์Šต๋‹ˆ๋‹ค.

CASE ๋ฌธ์€ ์กฐ๊ฑด๋ฌธ์œผ๋กœ, ์ผ๋ จ์˜ ์กฐ๊ฑด์„ ํ‰๊ฐ€ํ•˜๊ณ  ํ•ด๋‹น ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ์ด ๊ฒฝ์šฐ ๊ฐ ๊ณ ๊ฐ์— ๋Œ€ํ•ด ์ฝ”๋“œ๋Š” gender_cd ์—ด์˜ ๊ฐ’์„ ํ™•์ธํ•˜๊ณ , gender_cd๊ฐ€ '0'์ธ ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” gender_cd_0 ์—ด์— '1'์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‹ค๋ฅธ ์—ด์— '0'์„ ๋ฐ˜ํ™˜ํ•˜๊ณ , gender_cd๊ฐ€ '1'์ธ ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” gender_cd_1 ์—ด์— '1'์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‹ค๋ฅธ ์—ด์—๋Š” '0'์„ ๋ฐ˜ํ™˜ํ•˜๋ฉฐ, gender_cd๊ฐ€ '9'์ธ ๊ฒฝ์šฐ ์ฝ”๋“œ๋Š” gender_cd_9 ์—ด์— '1'์„ ๋ฐ˜ํ™˜ํ•˜๊ณ  ๋‹ค๋ฅธ ์—ด์—๋Š” '0'์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

๊ฒฐ๊ณผ ์ถœ๋ ฅ์€ customer_id, gender_cd_0, gender_cd_1, gender_cd_9 ์ปฌ๋Ÿผ์„ ๊ฐ€์ง€๋ฉฐ, ๊ฐ ๊ณ ๊ฐ์— ๋Œ€ํ•ด ์ƒˆ๋กœ์šด ์ปฌ๋Ÿผ ์ค‘ ํ•˜๋‚˜๋งŒ ๊ณ ๊ฐ์˜ ์„ฑ๋ณ„์„ ๋‚˜ํƒ€๋‚ด๋Š” '1'์ด๋ผ๋Š” ๊ฐ’์„ ๊ฐ€์ง€๊ฒŒ ๋œ๋‹ค.
ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” SQL ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ, SQL์„ ์ง€์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋Š” recipate๋ผ๋Š” ํ…Œ์ด๋ธ”์— ๋Œ€ํ•ด ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ž‘์—…์„ ์‹คํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ์ด ํ…Œ์ด๋ธ”์—๋Š” customer_id, ๊ธˆ์•ก ๋“ฑ์˜ ์—ด์„ ๊ฐ€์ง„ ํŠธ๋žœ์žญ์…˜ ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ๋Š” CTE(Common Table Expression)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ๊ฐœ์˜ ์ž„์‹œ ํ…Œ์ด๋ธ” sales_amount์™€ stats_amount๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์žˆ๋‹ค.

sales_amount๋ผ๋Š” ์ด๋ฆ„์˜ ์ฒซ ๋ฒˆ์งธ CTE๋Š” ๋ฌธ์ž 'Z'๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” customer_id๋ฅผ ๊ฐ€์ง„ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ธˆ์•ก์˜ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ๋‹ค. ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ customer_id๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ customer_id์˜ ๊ธˆ์•ก ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

stats_amount๋ผ๋Š” ์ด๋ฆ„์˜ ๋‘ ๋ฒˆ์งธ CTE๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์˜ ํ‰๊ท ๊ณผ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ SELECT ๋ฌธ์€ sales_amount ํ…Œ์ด๋ธ”์—์„œ ์ปฌ๋Ÿผ์„ ์„ ํƒํ•˜๊ณ  ํฌ๋กœ์Šค ์กฐ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ stats_amount ํ…Œ์ด๋ธ”๊ณผ ๊ฒฐํ•ฉํ•ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๊ธˆ์•ก์—์„œ ํ‰๊ท  ๊ธˆ์•ก์„ ๋นผ๊ณ  ์ด๋ฅผ ํ‘œ์ค€ํŽธ์ฐจ๋กœ ๋‚˜๋ˆ„์–ด ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ํ‘œ์ค€ํ™”๋œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ LIMIT 10์€ ์ถœ๋ ฅ์„ ์ฒ˜์Œ 10ํ–‰์œผ๋กœ ์ œํ•œํ•˜๊ณ  ์žˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ํ†ต๊ณ„ ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜์—ฌ 'Z'๋กœ ์‹œ์ž‘ํ•˜๋Š” customer_id๊ฐ€ ์—†๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ํ‘œ์ค€ํ™” ๋œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

ย 

ย 
์„ค๋ช…:

์ด ์ฝ”๋“œ๋Š” ์ด์ „ ์ฝ”๋“œ์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜์ง€๋งŒ, stats_amount CTE์—์„œ ํ•œ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ์ฐจ์ด์ ์ด ์žˆ๋‹ค.

ํ‘œ์ค€ํŽธ์ฐจ ๊ณ„์‚ฐ์— STDDEV_POP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋Œ€์‹  STDDEV_SAMP ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

STDDEV_SAMP๋Š” ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ชจ์ง‘๋‹จ์˜ ํ‘œ์ค€ํŽธ์ฐจ ์ถ”์ •์น˜์ธ ์ƒ˜ํ”Œ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด STDDEV_POP์€ ์ „์ฒด ๋ชจ์ง‘๋‹จ์„ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ์ •ํ™•ํ•œ ๋ชจ์ง‘๋‹จ ํ‘œ์ค€ํŽธ์ฐจ๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค.

์ฆ‰, ์ด ์ฝ”๋“œ์˜ ์ถœ๋ ฅ์€ ์ด์ „ ์ฝ”๋“œ์™€ ๋น„์Šทํ•˜์ง€๋งŒ ํ‘œ์ค€ํŽธ์ฐจ ๊ณ„์‚ฐ์€ ์ „์ฒด ๋ชจ์ง‘๋‹จ์ด ์•„๋‹Œ ๋ฐ์ดํ„ฐ ์ƒ˜ํ”Œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ๋‹ค.

์ผ๋ฐ˜์ ์œผ๋กœ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ๋งค์šฐ ํฐ ๊ฒฝ์šฐ ์ƒ˜ํ”Œ๊ณผ ๋ชจ์ง‘๋‹จ์˜ ํ‘œ์ค€ ํŽธ์ฐจ์˜ ์ฐจ์ด๊ฐ€ ์ž‘์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฐ์ดํ„ฐ ์„ธํŠธ๊ฐ€ ์ž‘์œผ๋ฉด ๊ทธ ์ฐจ์ด๊ฐ€ ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ย 

์„ค๋ช…:

์ด ์ฝ”๋“œ๋„ ์˜์ˆ˜์ฆ ํ…Œ์ด๋ธ”์„ ๋ถ„์„ํ•˜์ง€๋งŒ, ํ‘œ์ค€ํ™” ๋œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๋Š” ๋Œ€์‹  ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ๊ณ„๋Ÿ‰๋œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค.

์ด ์ฝ”๋“œ์—์„œ๋Š” sales_amount์™€ stats_amount๋ผ๋Š” ๋‘ ๊ฐœ์˜ CTE๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ, ์ด๋Š” ์ด์ „ ์ฝ”๋“œ์™€ ์œ ์‚ฌํ•˜๋‹ค.

์ฒซ ๋ฒˆ์งธ CTE๋Š” ๋ฌธ์ž 'Z'๋กœ ์‹œ์ž‘ํ•˜์ง€ ์•Š๋Š” customer_id๋ฅผ ๊ฐ€์ง„ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•˜๊ณ , ๋‘ ๋ฒˆ์งธ CTE๋Š” ์ž„์˜์˜ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์˜ ์ตœ๋Œ€๊ฐ’๊ณผ ์ตœ์†Œ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ SELECT ๋ฌธ์€ sales_amount ํ…Œ์ด๋ธ”์—์„œ ์ปฌ๋Ÿผ์„ ์„ ํƒํ•˜๊ณ  ํฌ๋กœ์Šค ์กฐ์ธ์„ ์‚ฌ์šฉํ•˜์—ฌ stats_amount ํ…Œ์ด๋ธ”๊ณผ ๊ฒฐํ•ฉํ•˜๊ณ  ์žˆ๋‹ค.

๋˜ํ•œ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์Šค์ผ€์ผ๋ง๋œ ๊ธˆ์•ก์„ ๊ณ„์‚ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก์—์„œ ์‚ฌ์šฉํ•œ ์ตœ์†Œ ๊ธˆ์•ก์„ ๋บ€ ํ›„ ์‚ฌ์šฉํ•œ ์ด ๊ธˆ์•ก ๋ฒ”์œ„๋กœ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ, ์ตœ๋Œ€ ๊ธˆ์•ก๊ณผ ์ตœ์†Œ ๊ธˆ์•ก์˜ ์ฐจ์ด์ž…๋‹ˆ๋‹ค.

์ˆ˜์‹ ์•ž์˜ 1.0 *๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์ˆ˜์‹์— ์‚ฌ์šฉ๋œ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ถ€๋™ ์†Œ์ˆ˜์  ์ˆซ์ž์ผ ๋•Œ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๋งˆ์ง€๋ง‰ LIMIT 10์€ ์ถœ๋ ฅ์„ ์ฒ˜์Œ 10ํ–‰์œผ๋กœ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค.

์ „์ฒด์ ์œผ๋กœ ์ด ์ฝ”๋“œ๋Š” ๋ฌธ์ž 'Z'๋กœ ์‹œ์ž‘ํ•˜๋Š” customer_id๊ฐ€ ์—†๋Š” ๊ฐ ๊ณ ๊ฐ์ด ์ง€์ถœํ•œ ๊ธˆ์•ก(scaled amount)์„ ๊ตฌํ•˜๋Š” ๋ฐ์ดํ„ฐ ๋ถ„์„ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋‹ค. ์Šค์ผ€์ผ๋ง๋œ ๊ธˆ์•ก์€ 0์—์„œ 1 ์‚ฌ์ด์˜ ๊ฐ’์œผ๋กœ, ๋ชจ๋“  ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด์•ก ๋ฒ”์œ„์— ๋Œ€ํ•œ ๊ฐ ๊ณ ๊ฐ์ด ์‚ฌ์šฉํ•œ ์ด์•ก์˜ ๋น„์œจ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.

ย 

ย 

Comment