header-img
Info :
๋ฐ€๋„
denseยน
์žฅ๋ž˜ํฌ๋ง : ๋‹จ์œ„ ๋ถ€ํ”ผ ๋‹น ์งˆ๋Ÿ‰์ด ๋ณด๋‹ค ๋นฝ๋นฝํ•œ ์‚ฌ๋žŒ ๋˜๊ธฐ
์ „์ฒด ๊ธ€ 126
list_img
Tableau: LOD(Level of Detail Calculation) 1
2024.02.26
ํƒœ๋ธ”๋กœ์—์„œ ๊ณ„์‚ฐ์€ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ์ด๋ค„์ง„๋‹ค. ์ฒซ์งธ, ๋ฐ์ดํ„ฐ ์›๋ณธ์— ๋Œ€ํ•ด ๊ณ„์‚ฐ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ ๊ณ„์‚ฐ. ๋‘˜์งธ, ํ˜„์žฌ ๋น„์ฃผ์–ผ๋ฆฌ์ œ์ด์…˜์— ํ‘œ์‹œ๋œ ํ•ญ๋ชฉ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ’์„ ๋ณ€ํ™˜ํ•ด ์…ˆํ•˜๋Š” ํ…Œ์ด๋ธ” ๊ณ„์‚ฐ. ์…‹์งธ, ์—ฐ์‚ฐํ•  ์„ธ๋ถ€ ์ˆ˜์ค€์„ ์ง€์ •ํ•ด ์…ˆํ•˜๋Š” LOD ๊ณ„์‚ฐ. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ด ์„ธ ๊ฐœ์˜ ๊ณ„์‚ฐ ์ค‘์—์„œ LOD ๊ณ„์‚ฐ์˜ ์ •์˜์™€ ์˜ˆ์ œ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ๋‹ค๋ฃฌ๋‹ค. ํ…Œ์ด๋ธ” ๊ณ„์‚ฐ์„ ํ•  ๋•Œ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์›”๋งค์ถœ ๊ฐ’์„ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ชผ๊ฐœ๋ฉด ๋ ˆ์ €, ๊ฐ€๊ตฌ, ์‹ํ’ˆ์˜ ์›”๋งค์ถœ ๊ฐ’์„ ๊ฐ๊ฐ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋ญ‰ํ……์ด๋กœ ์ชผ๊ฐœ ๋ฒ„๋ฆฐ๋‹ค๋ฉด ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ, ์ฆ‰ ๋‚š์‹œ๋Œ€์™€ ์บ ํ•‘ ํ…ํŠธ, ์˜์ž์™€ ์ฑ…์ƒ, ๋ฐ€ํ‚คํŠธ์™€ ๋ƒ‰๋™ ์‹ํ’ˆ์˜ ์›”๋งค์ถœ ๊ฐ’์„ ๋ณผ ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์›”๋งค์ถœ์„ ์ชผ๊ฐ ๋‹ค๋ฉด '๊ทธ๋ƒฅ ์นดํ…Œ๊ณ ๋ฆฌ'์˜ ์›”๋งค์ถœ ๊ฐ’์„ ๊ฐ๊ฐ ๋ณด๊ธฐ๋Š” ํž˜๋“ค๋‹ค. ๋‹ค์‹œ ..
list_img
SQL: mysql์—์„œ์˜ FULL OUTER JOIN
2024.02.21
์‹ค๋ฌด์—์„œ๋Š” ์ข…์ข… ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐใ…ก๊ธฐ์ค€ํ‚ค๊ฐ€ ๊ณต๋ฐฑ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ, ๋‹ค์‹œ ๋งํ•ด ํ•ฉ์ง‘ํ•ฉใ…ก๋ฅผ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค. ํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ด๋ฅผ FULL OUTER JOIN์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์›ํ•˜์ง€๋งŒ, mysql์—์„œ๋Š” ์•„์‰ฝ๊ฒŒ๋„ ์ด๋ฅผ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋ฉด mysql์—์„œ๋Š” ํ•ฉ์ง‘ํ•ฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋ƒ๊ณ ? ๊ทธ๊ฑด ์•„๋‹ˆ๋‹ค. LEFT JOIN๊ณผ RIGHT JOIN์„ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ mysql์—์„œ๋„ ์ด๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๊ตญ ๋ธ”๋กœ๊ทธ์— ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ํ‘œ์‹œํ•œ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์–ด ๋ฒˆ์—ญํ•ด ๊ฐ€์ ธ์™€ ๋ณธ๋‹ค. sales์™€ orders๋ผ๋Š” ๋‘ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. sales์™€ orders์—๋Š” ๋™์ผํ•˜๊ฒŒ id์ฃผ๋ฌธ ์•„์ด๋””์™€ order_date(ํ˜•์‹์ด ์‚ด์ง ๋‹ค๋ฅธ)์ฃผ๋ฌธ ์ผ์ž, a..
list_img
SQL ๋ฌธ์ œํ’€์ด: ์กฐ๊ฑด์— ๋งž๋Š” ๋‹ค์ค‘ํ–‰ ์ถœ๋ ฅ, ๋‹ค์ค‘ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ+ ์œˆ๋„์šฐ ํ•จ์ˆ˜
2024.02.21
๋‹น์‹ ์€ A์‹ํ’ˆ ์˜์—…ํŒ€ ๋‹ด๋‹น์ž๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์ •๋Ÿ‰์ ์œผ๋กœ ์ œํ’ˆ๋ณ„ ํŒ๋งค ์„ฑ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ณ ์ž ๋งˆํŠธ ์ „์‚ฐ ๊ธฐ์žฌ๋œ ์ž์‚ฌ ์ƒํ’ˆ ๊ธฐ๋ฐ˜์œผ๋กœ EDAํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. food_product ํ…Œ์ด๋ธ”์—์„œ ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„๋กœ ๊ฐ€๊ฒฉ์ด ๊ฐ€์žฅ ๋น„์‹ธ๊ฑฐ๋‚˜ ์‹ผ '๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ '์˜ category, price, product_name์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ์งœ์•ผ ํ• ๊นŒ? '์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„' ์ด๋ผ ํ–ˆ์œผ๋‹ˆ ์ƒํ’ˆ์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์•ผ ํ•œ๋‹ค. ๋˜, GROUP BY์™€ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์ค‘์—๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒ๋ฉด ์—ฐ์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์—ฐ์‚ฐ์— ๋งž๋Š” ๊ฐ’์„ ๊ฐ€์ง„ ๋กœ์šฐ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋‹ˆ๊นŒ. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ข€ ๋” ๊นŠ์ด ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function VS GROUP BY ํฌ์ŠคํŠธ๋ฅผ..
list_img
SQL: ์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function VS GROUP BY
2024.02.20
์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function๋Š” 'ํ–‰์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๊ตฌ๋ถ„ํ•ด ์ฃผ๋Š”' ํ•จ์ˆ˜๋‹ค. ์ด์ฏค ๋งํ•˜๋ฉด ๋‹น์‹  ๋จธ๋ฆฟ์†์— ๋– ์˜ค๋ฅธ ๋ฌธ๋ฒ•์ด ํ•˜๋‚˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋งž๋‹ค. GROUP BY. ์ด๊ฒƒ ์—ญ์‹œ ํ–‰์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๊ตฌ๋ถ„ํ•ด ์ค€๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์˜๋ฌธ์ด ๋“ ๋‹ค. GROUP BY ์ ˆ๊ณผ ๋Œ€๋น„ํ•ด ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๊ณ  ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์–ด๋–ค ์ƒํ™ฉ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฑธ๊นŒ. ์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” ์ด์ฒ˜๋Ÿผ ์œ ์‚ฌํ•œ ๋ฌธ๋งฅ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๋ฌธ๋ฒ•, GROUP BY ์ ˆ๊ณผ ์œˆ๋„์šฐ ํ•จ์ˆ˜์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ํƒ๊ตฌํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. ๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ธฐ ์•ž์„œ์„œ ์ฆ‰ 'ํ–‰์„ ๋ฌถ๋Š”๋‹ค'๋Š” ํ–‰๋™์— ๋Œ€ํ•ด ๋จผ์ € ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ–‰์„ ๋ฌถ๋Š”๋‹ค๋Š” ๊ฒƒ์€ ์ผ์ฐจ์ ์œผ๋กœ ํ–‰ ์‚ฌ์ด์˜ ๊ณตํ†ต์ ์„ ์ฐพ๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์—‘์…€ ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. ์ด๋ฆ„ ์„ฑ๋ณ„ ๋‚˜์ด ๊น€์—์ด ๋‚จ 15 ์ด๋น„ ์—ฌ 17 ๊น€..
list_img
SQL ๋ฌธ์ œํ’€์ด: ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ๊ฐ’ ๊ธฐ์ค€์œผ๋กœ ๋ฉ”์ธ ํ…Œ์ด๋ธ”์— ๊ฐ’ ๋ถ€์—ฌํ•˜๊ธฐ
2024.02.19
์‹œํ—˜์ด ๋๋‚ฌ๋‹ค. ํ•˜์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ๋‹น์‹ ์€ ํ•™๊ต ์„ ์ƒ๋‹˜์ด๋‹ค. ์•„์ด๋“ค์ด ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ํ•˜๊ตํ•˜๋Š” ๊ฒƒ๊ณผ ๋ณ„๊ฐœ๋กœ ๋‹น์‹ ์€ ์ฑ„์ ๋œ ์ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์•„์ด๋“ค์˜ ๋“ฑ๊ธ‰์„ ๋งค๊ฒจ์•ผ ํ•  ์ค‘์š”ํ•œ ์ฑ…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๋‹น์‹  ์•ž์—๋Š” Students ํ…Œ์ด๋ธ”๊ณผ Grades ํ…Œ์ด๋ธ”์ด ๋†“์—ฌ ์žˆ๋‹ค. ํ•˜๋‚˜๋Š” ํ•™์ƒ์˜ ์ด๋ฆ„๊ณผ ์ ์ˆ˜๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด๊ณ  ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ์„ ๊ทธ๋ฃน ๋‚˜๋ˆ„๋Š” ๋“ฑ๊ธ‰ ํ…Œ์ด๋ธ”์ด๋‹ค. ๋‘ ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๋น„๊ต์  ๋œ ์‚ฝ์งˆํ•˜๊ณ  ์•„์ด๋“ค์˜ ๋“ฑ๊ธ‰์„ ๋งค๊ธธ ์ฟผ๋ฆฌ๋ฅผ ์งค ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ. ๋ฌผ๋ก  ์ €๋ฒˆ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CASE WHEN์œผ๋กœ ์ผ์ผ์ด ์ง€์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, MIN ๊ฐ’๊ณผ MAX ๊ฐ’์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด ์ด๋ ‡๊ฒŒ ์˜ˆ์˜๊ฒŒ ์žˆ๋‹ค๋ฉด LEFT JOIN์œผ๋กœ ๋ฌถ๊ณ  BETWEEN๋งŒ ๊ฑธ์–ด ์ค˜๋„ ์ „์ฒด ๋“ฑ๊ธ‰์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค. L..
list_img
๊ฒฝ์• ์˜ ๋งˆ์Œ, ๊น€๊ธˆํฌ
2024.02.18
๊ฑฐ๊ธฐ์—, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ '์ƒ์ˆ˜'์˜ ์ฐจ์—๋Š” ์‹ญ ๋…„์— ๊ฑธ์ณ ์Œ“์ธ ์นดํƒˆ๋กœ๊ทธ ๋ญ‰์น˜๊ฐ€ ์Œ“์—ฌ ์žˆ์—ˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ–ˆ๊ณ  ๋‹น์—ฐํžˆ ์ƒ‰, ์ข…์ด์˜ ์ข…๋ฅ˜์™€ ํŽ˜์ด์ง€ ์ˆ˜, ๋‚ก์€ ์ •๋„์™€ ์ธ์‡„ ํ†ค ๊ทธ๋ฆฌ๊ณ  ๋ƒ„์ƒˆ๊ฐ€ ๋‹ฌ๋ž๋‹ค. ๊ฑฐ๊ธฐ์—์„  ๋ถ„๋ช…ํ•œ ์ถ•์ ์˜ ๋ƒ„์ƒˆ๊ฐ€ ๋‚ฌ๋‹ค. ์˜ค๋žœ ์‹œ๊ฐ„ ๋ถ€์‹๊ณผ ํก์ฐฉ์ด ์ด๋ฃจ์–ด์ง„ ๋’ค์—์•ผ ๋‚˜๋Š” ์ข…์ด ๋ณธ์—ฐ์˜ ๊ฒƒ์ด ๋‚ ์•„๊ฐ€ ์ฃผ๋ณ€ ํ™˜๊ฒฝ์— ์ˆœ์‘ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ ์™„์ „ํ•œ ๋ณ€ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„ ๋ƒ„์ƒˆ. ์–ด๋–ค ๊ธฐ์–ต์€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค. ํฐ ์…”์ธ ์— ๋‹ฌ๋ผ ๋ถ™์€ ์ปคํ”ผ ์ž๊ตญ์ฒ˜๋Ÿผ ๋๊นŒ์ง€ ๋‚จ๋Š”๋‹ค. ์ž‘๊ฐ€๋Š” ๋ˆ์งˆ๊ธฐ๊ฒŒ ์ ์ฒด์— ๋Œ€ํ•ด ์“ด๋‹ค. ์‹ ์ดŒ์˜ ์–ด๋А ์ค‘๊ณ  ์„œ์ ์—์„œ ์‚ผ ๋…„ ์ „์— ๊ตฌ๋งคํ•œ ์ด ์ฑ…์—๋Š” ์ด์ „ ์ฃผ์ธ์ด ๊ทธ์–ด ๋†“์€ ํ”์ ์ด ์ ์ฒด๋ผ ์žˆ๋‹ค. ๋‚ด๊ฒŒ๋Š” ์˜์›ํžˆ '๋ฏธ์ง€์ˆ˜'์ผ ๊ทธ ์‚ฌ๋žŒ์€ ๊ฒฐ์ฝ” ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋Š” ๊ตต๊ธฐ์˜ ํ”์ ์„ ์ฑ…์— ๋‚จ๊ฒจ ๋†“์•˜๋‹ค. '์ธ์‚ฌ์ ์ฒด'. ์—ฐ๋‘์ƒ‰ ์ƒ‰์—ฐํ•„๋กœ ์ง„ํ•˜๊ฒŒ ๊ทธ์–ด์ง„..
list_img
SQL ๋ฌธ์ œํ’€์ด: ๊ฐ€๊ฒฉ๋Œ€๋ณ„ ๊ทธ๋ฃน ์‰ฝ๊ฒŒ ๋งŒ๋“ค๊ธฐ, FLOOR/ TRUNCATE
2024.02.17
์–ด๋–ค ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ด ์‡ผํ•‘๋ชฐ์€ ๋งŒ ์› ๋Œ€๋ถ€ํ„ฐ ํŒ”๋งŒ ์› ๋Œ€๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๊ฐ€๊ฒฉ๋Œ€์˜ ์ƒํ’ˆ์„ ์ทจ๊ธ‰ํ•˜๊ณ  ์žˆ๋‹ค. ์–ด๋А ๋‚  ํ”„๋กœ๋•ํŠธ ํŒ€์—์„œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ ์š”์ฒญ์ด ๋“ค์–ด์™”๋‹ค. ์ œํ’ˆ์„ ๊ฐ€๊ฒฉ๋Œ€๋ณ„๋กœ ํ”„๋กœ๋ชจ์…˜ ์ง„ํ–‰ํ•˜๋ ค ํ•˜๋‹ˆ ๋งŒ ์› ๋‹จ์œ„๋กœ ๊ทธ๋ฃน์„ ๋‚˜๋ˆ  ๋‹ฌ๋ผ๊ณ . ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์งœ์•ผ ํ• ๊นŒ? ์ œํ’ˆ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๋Š” product ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. Column name Type Nullable product_id INTEGER FALSE product_code VARCHAR(8) FALSE price INTEGER FALSE product_id product_code price 1 A1000011 10000 2 A1000045 9000 3 C3000002 22000 4 C3000006 15000 5 ..
list_img
์œ ๋ น์˜ ๊ฟˆ์†์—์„œ, ์ฒ  1
2024.02.17
์ด์ œ ๋‚˜๋Š” ์œ ๋ น, ํ•ดํŒŒ๋ฆฌ, ๊ฟˆ์˜ ๊ณตํ†ต๋œ ๋ฌผ์„ฑ์— ๊ด€ํ•ด ์ ์„ ์ˆ˜ ์žˆ๋‹ค. ์„ธ์ƒ์—์„œ ์œ ๋ฆฌ๋˜๊ณ  ์˜ค๋กฏ์ด ํ•œ ์‚ฌ๋žŒ์˜ ์•ˆ์—๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ๋“ค์˜ ์„ ๋“ํ•œ ์งˆ๊ฐ์„ ๋А๋‚„ ์ˆ˜ ์žˆ๋‹ค. ํŒŒ๋ฆฌํ•œ ๋‚ฏ๋น›์˜ ์—ฌ์ž๊ฐ€ ํ•ดํŒŒ๋ฆฌ ๋ชจ์–‘์˜ ์œ ๋ น๊ณผ ๊ฟˆ์„ ๋ฑ‰์–ด๋‚ด๋Š” ๋ชจ์Šต์„ ๋ณธ๋‹ค. ๋งŒ์ง„๋‹ค. ๊ธฐ์ดํ•  ์ •๋„๋กœ ์ฐจ๋‹ค. ๊ธˆ์ƒˆ ์†์„ ๋–ผ์ง€๋งŒ ๋‹ค์‹œ๊ธˆ ์ด๋Œ๋ฆฐ๋‹ค. ์—์šฐ๋กœํŒŒ์˜ ๋ฐ”๋‹ค๋ฅผ ๋”๋“ฌ๋Š” ๊ฒƒ ๊ฐ™์€ ์ฐจ๊ฐ€์›€์— ๋งคํ˜น๋œ๋‹ค. ๊ด‘ํ™œํ•œ ์šฐ์ฃผ์˜ ํ˜•ํƒœ์™€ ๊ทธ๊ฒƒ์„ ์ด๋ฃจ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์˜ ํ˜•ํƒœ๋Š” ๊ธฐ๋ฌ˜ํ•˜๊ฒŒ ๋‹ฎ์•˜๋‹ค์ง€. ์ด๋ ‡๊ฒŒ๋‚˜ ๊ฐ€๊นŒ์šด ๊ฒƒ์ด ์ง€๋…ํ•˜๊ฒŒ ๋ฉ€๊ฒŒ ๋А๊ปด์ง€๋Š” ๊ฒƒ๋„ ์ž์—ฐ์˜ ์„ญ๋ฆฌ๋ฅผ ๋”ฐ๋ผ์„œ์ธ ๊ฑธ๊นŒ. ์›”์‹์˜ ๋’คํŽธ์—์„œ ์˜ค๋ž˜ ์žŠ๊ณ  ์žˆ์—ˆ๋˜ ํ•ดํŒŒ๋ฆฌ ๋–ผ๋ฅผ ๋ณธ๋‹ค.
list_img
๋ฆฐ ๋ถ„์„ Lean analytics, ์•จ๋ฆฌ์Šคํ…Œ์–ด ํฌ๋กค 1
2024.02.17
๋‚˜์นจ๋ฐ˜์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋А๊ผˆ๋‹ค. ๋ง์—†์ด ํ‘œ์ •์„ ์ฐก๊ทธ๋ฆฌ๊ณ  ์žˆ๋Š” ์ง€ํ‘œ๋“ค์„ ๋ณด๊ณ  ์žˆ์„ ๋•Œ๋ฉด, ๋ฌด์Šจ ๋ง๋ง๋Œ€ํ•ด์— ํ‘œ๋ฅ˜ํ•ด ์˜จ ๊ฒƒ๋งŒ ๊ฐ™์•˜๋‹ค. ์ง€๋„๋„ ๋ฐฉํ–ฅ๋„ ์—†์œผ๋‹ˆ ์ง๊ฐ์— ์˜์ง€ํ•ด ๋‚˜์•„๊ฐ€์•ผ ํ–ˆ๋‹ค. ์‹คํŒจํ•˜๋“  ์„ฑ๊ณตํ•˜๋“  ์—ฌ์ „ํžˆ ๋‚ด ๋ฐ‘์—” ๋ฐ”๋‹ค๊ฐ€ ์žˆ์—ˆ๊ณ  ๋‚˜๋Š” ๋ฐฐ ํ•œ ์ฒ™์„ ๊ฐ€์ง„ ์ฑ„ ์ง€๋„๋„ ๋‚˜์นจ๋ฐ˜๋„ ์—†์ด ํ‘œ๋ฅ˜ํ•ด์•ผ ํ–ˆ๋‹ค. ๋‚˜์นจ๋ฐ˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ถ„์„์„ ๋ฐฐ์› ์ง€๋งŒ ์—ฌ์ „ํžˆ ์–ด๋ ค์› ๋‹ค. ๋‚ด๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋””์ฏค ์žˆ๋Š” ๊ฑฐ์ง€, ์•Œ๋ ค ์ค„ ์ง€๋„๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฐ ๋ถ„์„์€ ์ด์— ๋Œ€ํ•œ ์ข‹์€ ์ง€๋„์˜€๋‹ค. (์กฐ๊ธˆ ๋‚ก๊ธด ํ–ˆ์ง€๋งŒ. 19~20๋…„ ์ฏค์ด ์ด ์ฑ…์˜ ์ „์„ฑ๊ธฐ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค. 23๋…„ ๋„˜์–ด๊ฐ€์„œ ์“ด ๊ธ€์€ ๊ฑฐ์˜ ์—†๋”๋ผ.) ์ž์ฃผ ๊บผ๋‚ด๋ณด๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์‚ฌ์—… ๋ชจ๋ธ ์ „๋ฐ˜์— ๊ด€์—ฌํ•ด์•ผ ํ•˜๋Š” ์ฐฝ์—…์ž์™€ PM๋ฟ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๋“ค์—๊ฒŒ๋„ ์ข‹์€ ์ฑ…์ด๋‹ค. ์ง€ํ‘œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•๋ก ..
list_img
๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ํ”ผํ•ด์•ผ ํ•  ์—ด ๊ฐ€์ง€ ํ•จ์ • 2
2024.02.15
๋ฐ์ดํ„ฐ๋ฅผ ์Šฌ๊ธฐ๋กญ๊ฒŒ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•ด ๊ทธ๊ฑฐ ์•Œ๊ณ  ์žˆ๋Š”๊ฐ€. ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ๊ฐ€ ํ•˜๋ฒ„๋“œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฆฌ๋ทฐ์—์„œ ์„ ์ •ํ•œ 21์„ธ๊ธฐ์—์„œ ๊ฐ€์žฅ ์„น์‹œํ•œ ์ง์—…์ธ ๊ฑฐ(Data Scientist: The Sexxist Job of the 21st Century, 2012). ์‹ญ์—ฌ ๋…„์ด ์ง€๋‚ฌ์ง€๋งŒ ํ˜„์žฌ ์ถ”์ด๋ฅผ ๋ณด๋ฉด ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ๊ฐ€ ์™•์ขŒ์—์„œ ๋‚ด๋ ค์˜ฌ ์ผ์€ ์•„์ง ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. ๋ฐ์ดํ„ฐ๋ผ๋Š” ๋ถ„์•ผ๊ฐ€ ๋– ์˜ค๋ฅธ ์ง€ ์‹ญ์—ฌ ๋…„์ด ์ง€๋‚ฌ๊ณ  ์—ฌ์ „ํžˆ ์œ ๋งํ•˜์ง€๋งŒ ์šฐ๋ฆฌ ์ฃผ๋ณ€์€ ๋ฐ์ดํ„ฐ์™€ ๋‚ด์™ธํ•˜๊ณ  ์žˆ๋Š” ๋“ฏํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ์ง€๋งŒ ๋„๊ตฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜์ง€๋Š” ๋ชป ํ•œ๋‹ค. ์™ธ๋ ค ํœ˜๋‘˜๋ฆฐ๋‹ค. ์ด๋Ÿฐ ๊ธฐ ์„ผ ๋ฐ์ดํ„ฐ๋ฅผ ์Šฌ๊ธฐ๋กญ๊ฒŒ ์ž˜ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•ด, ๋งํฌ๋“œ์ธ์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ ๋ชจ๋‹ˆ์นด ๋กœ๊ฐ€ํ‹ฐMonica Rogati๊ฐ€ ์ •๋ฆฌํ•œ ๊ธ€์ด ์žˆ์–ด ๊ณต์œ ํ•ด ๋ณธ๋‹ค. ๊ธ€์€ ๋ฆฐ ๋ถ„์„Lean an..
list_img
RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋‹ค
2024.02.15
RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋‹ค ๊ธ€์—์„œ๋Š” ์„œ๋‘๋ถ€ํ„ฐ ๋ชป ๋ฐ•์•„ ๋‘”๋‹ค. "RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋‹ค." ๋˜ํ•œ ์‹ค๋ฌด์—์„œ ํ–‰ํ•˜๋Š”, ์„ฑ๊ณผ๋ฅผ ๋‚ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—ญ์‹œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ง๋ถ™์ธ๋‹ค. ๋‹ค์‹œ ๋งํ•˜๋ฉด, ์•„๋ฌด ๋ฐ์ดํ„ฐ๋‚˜ ๋„ฃ์œผ๋ฉด ๊ธฐ๊น”๋‚˜๋Š” ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋ฝ‘์•„ ์ฃผ๋Š” ์–ด๋ฆฐ์™•์ž์˜ ์ƒ์ž ๊ฐ™์€ ๋ถ„์„ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฟˆ ์†์—์„œ๋‚˜ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๊ณ , ์–ด๋–ค ๊ฐ€๊ณต ๊ณผ์ •์„ ๊ฑฐ์น˜๋“  ๊ฐ„์— ๋ฐ์ดํ„ฐ ๋ถ„์„์€ ๋‚˜์˜ ์•Ž์—์„œ ํ”Œ๋Ÿฌ์Šค ๋งˆ์ด๋„ˆ์Šค ๋ช‡ ํผ์„ผํŠธ ํ•œ ๊ฐ’์—์„œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ถœ๋ ฅํ•ด์ค„ ์˜ˆ์ •์ด๋ผ๋Š” ๊ฑฐ๋‹ค. ๋‚˜์˜๊ฒŒ ๋งํ•˜๋ฉด ๋ฝ‘๊ธฐ ํ™•๋ฅ  ๋‚ฎ๋‹ค๋Š” ๊ฑฐ๊ณ  ์ข‹๊ฒŒ ๋งํ•˜๋ฉด ๋‚ด๊ฐ€ ๋†“์นœ ์š”ํ–‰์ด ์—†๋‹จ ์†Œ๋ฆฌ๊ฒ ๋‹ค. ์˜คํžˆ๋ ค ์ข‹๋‹ค. ์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋ฐœ๊ตดํ•ด๋‚ด๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์ดํ›„์— ์ง‘ํ–‰ํ•  ์•ก์…˜ ์•„์ดํ…œ์— ๋งž์ถฐ ์œ ์˜๋ฏธํ•œ ๊ณ ๊ฐ..
list_img
SQL: ์™œ NULL์€ =์ด ์•„๋‹ˆ๋ผ is๋ฅผ ์“ธ๊นŒ 1
2024.02.11
์™œ NULL์€ =์ด ์•„๋‹ˆ๋ผ is๋ฅผ ์“ธ๊นŒ SQL ๋ฌธ๋ฒ•์„ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ, ๊ผญ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. 'NULL์„ ์ฐพ์„ ๋•Œ๋Š” = NULL์ด ์•„๋‹ˆ๋ผ IS NULL์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค'. ์˜์•„ํ•˜๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” (๋…ผ๋ฆฌ ์—ฐ์‚ฐ์—์„œ) NULL์„ 0๊ณผ ๊ฐ™์ด ์ทจ๊ธ‰ํ•˜์ง€ ์•Š๋Š”๊ฐ€. SQL์—๋Š” ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๊ธธ๋ž˜ ์ด์ฒ˜๋Ÿผ ํŠน๋ณ„ํ•˜๊ฒŒ NULL์„ ๋‹ค๋ฃฐ๊นŒ. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—๋Š” SQL์‹ NULL์˜ ์ •์˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด์„œ ์œ„ ์˜๋ฌธ์— ๋Œ€ํ•ด ํŒŒํ—ค์ณ ๋ณธ๋‹ค. ๋ฐ์ดํ„ฐ๊ฐ€ '์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’' ๊ทธ๋ž˜์„œ '์•„์ง ๋ชจ๋ฅด๋Š” ๊ฐ’' SQL์—์„œ์˜ NULL์€ ์œ„ํ‚ค๋ฐฑ๊ณผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ ‡๊ฒŒ ์ •์˜๋œ๋‹ค. 'Null ๋˜๋Š” NULL์€ ๊ตฌ์กฐ์  ์งˆ์˜์–ธ์–ด(SQL)์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ง€์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ํ‘œ์‹œ์–ด(Special marker)'...

 

 

 

ํƒœ๋ธ”๋กœ์—์„œ ๊ณ„์‚ฐ์€ ํฌ๊ฒŒ ์„ธ ๊ฐ€์ง€ ์œ ํ˜•์œผ๋กœ ์ด๋ค„์ง„๋‹ค. ์ฒซ์งธ, ๋ฐ์ดํ„ฐ ์›๋ณธ์— ๋Œ€ํ•ด ๊ณ„์‚ฐ์„ ์ง„ํ–‰ํ•˜๋Š” ๊ธฐ๋ณธ ๊ณ„์‚ฐ. ๋‘˜์งธ, ํ˜„์žฌ ๋น„์ฃผ์–ผ๋ฆฌ์ œ์ด์…˜์— ํ‘œ์‹œ๋œ ํ•ญ๋ชฉ ๋ฐ”ํƒ•์œผ๋กœ ๊ฐ’์„ ๋ณ€ํ™˜ํ•ด ์…ˆํ•˜๋Š” ํ…Œ์ด๋ธ” ๊ณ„์‚ฐ. ์…‹์งธ, ์—ฐ์‚ฐํ•  ์„ธ๋ถ€ ์ˆ˜์ค€์„ ์ง€์ •ํ•ด ์…ˆํ•˜๋Š” LOD ๊ณ„์‚ฐ. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ด ์„ธ ๊ฐœ์˜ ๊ณ„์‚ฐ ์ค‘์—์„œ LOD ๊ณ„์‚ฐ์˜ ์ •์˜์™€ ์˜ˆ์ œ์— ๋Œ€ํ•ด ๊ฐ„๋žตํ•˜๊ฒŒ ๋‹ค๋ฃฌ๋‹ค.

 

 

 

<'๋””ํ…Œ์ผ'์—๋„ '๋ ˆ๋ฒจ'์ด ์žˆ๋‹ค>

 

ํ…Œ์ด๋ธ” ๊ณ„์‚ฐ์„ ํ•  ๋•Œ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์ž. ์›”๋งค์ถœ ๊ฐ’์„ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์ชผ๊ฐœ๋ฉด ๋ ˆ์ €, ๊ฐ€๊ตฌ, ์‹ํ’ˆ์˜ ์›”๋งค์ถœ ๊ฐ’์„ ๊ฐ๊ฐ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๋ญ‰ํ……์ด๋กœ ์ชผ๊ฐœ ๋ฒ„๋ฆฐ๋‹ค๋ฉด ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ, ์ฆ‰ ๋‚š์‹œ๋Œ€์™€ ์บ ํ•‘ ํ…ํŠธ, ์˜์ž์™€ ์ฑ…์ƒ, ๋ฐ€ํ‚คํŠธ์™€ ๋ƒ‰๋™ ์‹ํ’ˆ์˜ ์›”๋งค์ถœ ๊ฐ’์„ ๋ณผ ์ˆ˜ ์—†์„ ๊ฒƒ์ด๋‹ค. ๋ฐ˜๋Œ€๋กœ ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ์›”๋งค์ถœ์„ ์ชผ๊ฐ ๋‹ค๋ฉด '๊ทธ๋ƒฅ ์นดํ…Œ๊ณ ๋ฆฌ'์˜ ์›”๋งค์ถœ ๊ฐ’์„ ๊ฐ๊ฐ ๋ณด๊ธฐ๋Š” ํž˜๋“ค๋‹ค.

 

 

๋‹ค์‹œ ๋งํ•˜๋ฉด "์ฐจ์›๊ณผ ์ธก์ •๊ฐ’์„ ํ…Œ์ด๋ธ” ๋‚ด์— ๋„ฃ์œผ๋ฉด ๊ทธ ์‹œ์ ์—์„œ '๋””ํ…Œ์ผ ๋ ˆ๋ฒจ'์€ ๊ณ ์ •๋œ๋‹ค." ๋””ํ…Œ์ผ ๋ ˆ๋ฒจ์ด ๋†’์„ ์ˆ˜๋ก ๊ฐ ๋ฐ์ดํ„ฐ๋Š” ํ†ตํ•ฉ๋˜์–ด ์žˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ๋””ํ…Œ์ผ ๋ ˆ๋ฒจ์ด ๋‚ฎ์„ ์ˆ˜๋ก ๋ฐ์ดํ„ฐ๋Š” ์„ธ๋ถ„ํ™”๋˜์–ด ์ชผ๊ฐœ์ ธ ์žˆ๋‹ค. ์นดํ…Œ๊ณ ๋ฆฌ๋Š” ์„œ๋ธŒ ์นดํ…Œ๊ณ ๋ฆฌ๋ณด๋‹ค ๋””ํ…Œ์ผ ๋ ˆ๋ฒจ์ด ๋†’์€ ์…ˆ์ด๋‹ค.

 

 

์–ด์ฉŒ๋ฉด ๋‹น์—ฐํ•ด ๋ณด์ด๋Š” ๋ง์ด์ง€๋งŒ, ์ด ๋‹จ์ˆœํ•œ ์กฐ๊ฑด์œผ๋กœ ์ธํ•ด ์ œํ•œ๋˜๋Š” ๊ณ„์‚ฐ๋“ค์ด ๋งŽ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณ ๊ฐ๋ณ„ ๊ตฌ๋งค ์ผ์ž๋ฅผ ์ตœ์ดˆ ๊ตฌ๋งค์ผ๋กœ๋ถ€ํ„ฐ ๋ฉฐ์น ์ด ์ง€๋‚ฌ๋Š”์ง€ ๋ณด๊ณ  ์‹ถ๋‹ค๊ณ  ํ•ด ๋ณด์ž. ์ด๋ฅผ ์œ„ํ•ด์„œ ๊ตฌ๋งค์ผOrder Date์˜ MIN ๊ฐ’๊ณผ(MIN[Order Date]) ์ตœ์ดˆ ๊ตฌ๋งค์ผ๋กœ๋ถ€ํ„ฐ์˜ ๋‚ ์งœ ์ฐจ์ดDATEDIFF๋ฅผ ๋ฝ‘์œผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

์ „๋ถ€ ๋‹ค '์ตœ์ดˆ ๊ตฌ๋งค์ผ'๋กœ ์ถœ๋ ฅ๋œ๋‹ค.

 

'๊ณ ๊ฐ๋ณ„ ์ตœ์ดˆ ๊ตฌ๋งค์ผ' ์ถœ๋ ฅ์„ ์˜ˆ์ƒํ•˜๊ณ  ์ž…๋ ฅํ•œ ๊ฐ’์ด์ง€๋งŒ, ์‹ค์ œ๋กœ๋Š” ํ™”๋ฉด(ํ…Œ์ด๋ธ”) ์ƒ ๋””ํ…Œ์ผ ๋ ˆ๋ฒจ์ด (SQL ์‹์œผ๋กœ ๋งํ•˜์ž๋ฉด ๊ทธ๋ฃน์ด) ์ผ ๋‹จ์œ„๋กœ ๋‚˜๋ˆ ์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๊ตฌ๋งค์ผ์ด ๋ชจ๋‘ ์ตœ์ดˆ ๊ตฌ๋งค์ผ ๊ฐ’์œผ๋กœ ์žกํžˆ๊ฒŒ ๋˜๊ณ  ์ด ์‹์„ ํ†ตํ•ด DATEDIFF๋ฅผ ๊ณ„์‚ฐํ•ด ๋ดค์ž ์œ ์˜๋ฏธํ•œ ์—ฐ์‚ฐ์ด ๋  ์ˆ˜ ์—†๋‹ค.

 

 

์ด๋ ‡๊ฒŒ, ๋‘ ๊ฐ’๋“ค์˜ ๋ ˆ๋ฒจ ์ฐจ์ด ๋•Œ๋ฌธ์— ํ…Œ์ด๋ธ” ๋‚ด์—์„œ ๊ณ„์‚ฐ๋  ์ˆ˜ ์—†๋Š” ๊ฒƒ๋“ค์„ ์‹ค์งˆ์ ์œผ๋กœ ์—ฐ์‚ฐ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด ์ฃผ๋Š” ๊ฒŒ LOD ๊ณ„์‚ฐLevel of Detail Calculation์ด๋‹ค. LOD ๊ณ„์‚ฐ ํ•จ์ˆ˜ ์ค‘ FIXED๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํ˜„์žฌ ๋ทฐ ๋‚ด์—(VLOD: View Level of Detail) ๋‚˜์™€ ์žˆ์ง€ ์•Š๋Š” ๋‹ค๋ฅธ ์ฐจ์› ๊ธฐ์ค€์œผ๋กœ ๊ฐ’์„ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์ด FIXED๋กœ ์‚ฌ์šฉ์ž ์ด๋ฆ„Customer Name์„ ์ถ”๊ฐ€๋กœ ๊ทธ๋ฃจํ•‘ํ•ด ์ฃผ๋ฉด ๊ณ ๊ฐ ๋ณ„๋กœ ์ตœ์ดˆ ๊ตฌ๋งค ์ผ์ž๊ฐ€ ๊ณ ์ •๋ผ์„œ ๋‘ ๋‚ ์งœ ์‚ฌ์ด์˜ ์ฐจ์ด๋ฅผ ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

(FIXED [Customer Name]: MIN([Order Date]))

 

 

FIXED๋กœ ์กฐ๊ฑด์„ ๊ณ ์ •ํ•ด ์ฃผ์ž ์ œ๋Œ€๋กœ ์ตœ์ดˆ ๊ตฌ๋งค์ผ์ด ๋ถ„๋ฆฌ๋ผ ๋‚˜์˜จ๋‹ค.

 

 

์ด์ฒ˜๋Ÿผ LOD ๊ณ„์‚ฐ์„ ์‚ฌ์šฉํ•˜๋ฉด ์šฐ๋ฆฌ ํ…Œ์ด๋ธ”(VLOD)์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋””ํ…Œ์ผ ๋ ˆ๋ฒจ ์™ธ์—์„œ๋„ ์—ฐ์‚ฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

 

 

 

 

<LOD ํ‘œํ˜„์‹์˜ ํ˜•ํƒœ์™€ ์ข…๋ฅ˜>

 

LOD ํ‘œํ˜„์‹์€ ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•ํƒœ๋ฅผ ๊ฐ€์ง„๋‹ค. ์กฐ๊ฑด์œผ๋กœ ํ™œ์šฉํ•  ์ฐจ์›๊ณผ ์ง‘๊ณ„์‹์„ ๊ธฐ์žฌํ•˜๊ณ  ์ค‘๊ด„ํ˜ธ๋กœ ๋ฌถ์–ด ์ฃผ๋Š” ํ˜•ํƒœ๋‹ค. ์ฐจ์› ์„ ์–ธ์€ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ƒ๋žตํ•˜๋ฉด ์ „์ฒด ํ…Œ์ด๋ธ” ๋‹จ์œ„๋กœ ํ‘œํ˜„๋˜๊ฒŒ ๋œ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฐจ์›๋„ ์กฐ๊ฑด์œผ๋กœ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‰ผํ‘œ๋กœ ๋’ค๋ฅผ ์ด์–ด์ฃผ๋ฉด ๋œ๋‹ค. ๋˜ ์œ ๋…ํ•ด์•ผ ํ•  ์ ์ด ํ•˜๋‚˜ ์žˆ๋Š”๋ฐ, ๋’ค์— ์˜ค๋Š” ์‹์€ ๋ฐ˜๋“œ์‹œ ์ง‘๊ณ„์‹(์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ํ‘œํ˜„ํ•œ ๊ฐ’์˜ ํ˜•ํƒœ)์œผ๋กœ ํ‘œํ˜„ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.

 

 

์ถœ์ฒ˜// ํŒจ์ŠคํŠธ์บ ํผ์Šค

 

์ง€์†์ ์œผ๋กœ ์„ค๋ช…๋˜๊ณ  ์žˆ๋Š” FIXED๋Š” ์™„์ „ํžˆ ๋…๋ฆฝ์ ์ธ ํ‘œํ˜„์„ ์„ค๋ช…ํ•˜๋Š” LOD ํ‘œํ˜„์‹์ด๋‹ค. ์™ธ์—๋„ ๋‘ ๊ฐ€์ง€ ํ‘œํ˜„์‹์ด ๋” ์žˆ๋Š”๋ฐ, ํ˜„์žฌ ๋ทฐ์—์„œ ํŠน์ • ์ฐจ์›์„ ์ถ”๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ(๋” ์„ธ๋ถ„ํ™”)ํ•˜๋Š” INCLUDE์™€ ๋ฐ˜๋Œ€๋กœ ํ˜„์žฌ ํ…Œ์ด๋ธ”์—์„œ ํŠน์ • ์ฐจ์›์„ ์ œ์™ธํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ(๋œ ์„ธ๋ถ„ํ™”)ํ•˜๋Š” EXCLUDE๋‹ค. ๋‹ค๋งŒ FIXED๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋Š” ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์ด ํฌ์ŠคํŠธ์—์„œ๋Š” FIXED ์œ„์ฃผ๋กœ ๋‹ค๋ค˜๋‹ค.

 

 

 

 

 

<๋งˆ์น˜๋ฉด์„œ>

 

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

 

 

 

 

 

 

<์ฐธ๊ณ >

 

ํŒจ์ŠคํŠธ์บ ํผ์Šค ์ „์„œ์—ฐ๋‹˜ ๊ฐ•์˜

ํƒœ๋ธ”๋กœ ๊ณต์‹ ๋ธ”๋กœ๊ทธ

Cheon๋‹˜ ๋ธŒ๋Ÿฐ์น˜

๊น€์†Œ์ •๋‹˜ velog

 

'TOOLS > Tableau' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

Tableau: ๊ณ„์‚ฐ๊ณผ ํ•„ํ„ฐ์˜ ์ž‘๋™ ์ˆœ์„œ, Order of Operation  (0) 2024.02.26
๋”๋ณด๊ธฐ
TOOLS/Tableau

 

 

 

 

<์„œ๋ก >

์‹ค๋ฌด์—์„œ๋Š” ์ข…์ข… ๋‘ ๊ฐœ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐใ…ก๊ธฐ์ค€ํ‚ค๊ฐ€ ๊ณต๋ฐฑ์ธ ๋ฐ์ดํ„ฐ๋ฅผ ํฌํ•จํ•œ, ๋‹ค์‹œ ๋งํ•ด ํ•ฉ์ง‘ํ•ฉใ…ก๋ฅผ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ์ƒ๊ธด๋‹ค. ํƒ€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” ์ด๋ฅผ FULL OUTER JOIN์ด๋ผ๋Š” ์ด๋ฆ„์œผ๋กœ ์ง€์›ํ•˜์ง€๋งŒ, mysql์—์„œ๋Š” ์•„์‰ฝ๊ฒŒ๋„ ์ด๋ฅผ ๊ณต์‹์ ์œผ๋กœ ์ง€์›ํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ๊ทธ๋Ÿฌ๋ฉด mysql์—์„œ๋Š” ํ•ฉ์ง‘ํ•ฉ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†๋ƒ๊ณ ? ๊ทธ๊ฑด ์•„๋‹ˆ๋‹ค. LEFT JOIN๊ณผ RIGHT JOIN์„ ๊ฒฐํ•ฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ mysql์—์„œ๋„ ์ด๋ฅผ ๊ฐ„์ ‘์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์™ธ๊ตญ ๋ธ”๋กœ๊ทธ์— ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด ์˜ˆ์ œ์™€ ํ•จ๊ป˜ ํ‘œ์‹œํ•œ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์–ด ๋ฒˆ์—ญํ•ด ๊ฐ€์ ธ์™€ ๋ณธ๋‹ค.

 

 

FULL OUTER JOIN์˜ ํ˜•ํƒœ. ์ถœ์ฒ˜ //&nbsp;https://sql-joins.leopard.in.ua/

 

 

 

 

<๋ณธ๋ฌธ>

sales์™€ orders๋ผ๋Š” ๋‘ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. sales์™€ orders์—๋Š” ๋™์ผํ•˜๊ฒŒ id์ฃผ๋ฌธ ์•„์ด๋””์™€ order_date(ํ˜•์‹์ด ์‚ด์ง ๋‹ค๋ฅธ)์ฃผ๋ฌธ ์ผ์ž, amount์ฃผ๋ฌธ ๊ธˆ์•ก ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด ์žˆ๋‹ค.

 

SELECT *
FROM sales;

 +------+---------------------+--------+
 | id   | order_date          | amount |
 +------+---------------------+--------+
 |    1 | 2021-02-02 08:15:00 |    250 |
 |    2 | 2021-02-02 08:30:00 |    200 |
 |    3 | 2021-02-02 08:55:00 |    150 |
 |    4 | 2021-02-02 09:15:00 |    125 |
 |    5 | 2021-02-02 09:30:00 |    250 |
 |    6 | 2021-02-02 09:45:00 |    200 |
 |    7 | 2021-02-02 10:15:00 |    180 |
 |    8 | 2021-02-02 10:30:00 |    125 |
 |    9 | 2021-02-02 10:45:00 |    200 |
 |   10 | 2021-02-02 11:15:00 |    250 |
 |   11 | 2021-02-02 11:30:00 |    150 |
 |   12 | 2021-02-02 11:45:00 |    200 |
 +------+---------------------+--------+


SELECT *
FROM orders;

 +------+------------+--------+
 | id   | order_date | amount |
 +------+------------+--------+
 |    5 | 2021-01-28 |    250 |
 |    6 | 2021-01-29 |    250 |
 |    7 | 2021-01-30 |    250 |
 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-01 |    250 |
 +------+------------+--------+

 

 

๋งŒ์•ฝ ๋‹น์‹ ์ด ์ „์ฒด ๊ธฐ๊ฐ„ ๋™์•ˆ์˜ ๋งค์ถœ ํ•ฉ๊ณ„๋ฅผ ๊ณ„์‚ฐํ•œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ์ด์œ ๋กœ ๋‘ ํ…Œ์ด๋ธ”์„ ํ•ฉ์ณ์•ผ ํ•  ํ•„์š”์„ฑ์ด ์žˆ๋‹ค๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด LEFT JOIN๊ณผ RIGHT JOIN์„ UNION ALL๋กœ ๊ฒฐํ•ฉํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์‹์œผ๋กœ.

mysql> SELECT * FROM sales
       LEFT JOIN orders ON sales.id = orders.id
       UNION ALL
       SELECT * FROM sales
       RIGHT JOIN orders ON sales.id = orders.id
       WHERE sales.id IS NULL ;
       
 +------+---------------------+--------+------+------------+--------+
 | id   | order_date          | amount | id   | order_date | amount |
 +------+---------------------+--------+------+------------+--------+
 |    5 | 2021-02-02 09:30:00 |    250 |    5 | 2021-01-28 |    250 |
 |    6 | 2021-02-02 09:45:00 |    200 |    6 | 2021-01-29 |    250 |
 |    7 | 2021-02-02 10:15:00 |    180 |    7 | 2021-01-30 |    250 |
 |    8 | 2021-02-02 10:30:00 |    125 |    8 | 2021-01-31 |    250 |
 |    9 | 2021-02-02 10:45:00 |    200 |    9 | 2021-02-01 |    250 |
 |    1 | 2021-02-02 08:15:00 |    250 | NULL | NULL       |   NULL |
 |    2 | 2021-02-02 08:30:00 |    200 | NULL | NULL       |   NULL |
 |    3 | 2021-02-02 08:55:00 |    150 | NULL | NULL       |   NULL |
 |    4 | 2021-02-02 09:15:00 |    125 | NULL | NULL       |   NULL |
 |   10 | 2021-02-02 11:15:00 |    250 | NULL | NULL       |   NULL |
 |   11 | 2021-02-02 11:30:00 |    150 | NULL | NULL       |   NULL |
 |   12 | 2021-02-02 11:45:00 |    200 | NULL | NULL       |   NULL |
 +------+---------------------+--------+------+------------+--------+

 

 

๋‹ค๋งŒ UNION ALL์˜ ๊ฒฝ์šฐ ํ•ฉ์ง‘ํ•ฉ์ด๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต ํ–‰์ด ์„ž์—ฌ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์—๋Š” UNION์„ ์‚ฌ์šฉํ•ด ์ฃผ๋ฉด ๋˜๋Š”๋ฐ, UNION์˜ ๊ฒฝ์šฐ์—๋Š” t1๊ณผ t2 ์‚ฌ์ด์˜ ์ค‘๋ณต ๊ฐ’์„ ๊ฑธ๋Ÿฌ์„œ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์ด์–ด์„œ ์œ ๋‹ˆํฌ ๊ฐ’์„ ๊ฑฐ๋ฅด๋Š” ์ธ๋ฑ์Šค๊ฐ€ ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€๋œ๋‹ค๊ณ  ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ใ…ก์ค‘๋ณต์„ ๊ฑฐ๋ฅด์ง€ ์•Š๋Š” UNION ALL๊ณผ ๋Œ€๋น„ํ•ด์„œใ…ก ๋ฐ์ดํ„ฐ์˜ ํฌ๊ธฐ์— ๋”ฐ๋ผ 1.5๋ฐฐ์—์„œ 4๋ฐฐ๊นŒ์ง€ ์„ฑ๋Šฅ ์ฐจ์ด๊ฐ€ ๋‚  ์ˆ˜๋„ ์žˆ๋‹ค๊ณ .

 

๊ทธ๋Ÿฌ๋‹ˆ๊นŒ, ์›ฌ๋งŒํ•˜๋ฉด FULL OUTER JOIN์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” UNION ALL์„ ์“ฐ๋Š” ๊ฒŒ ํšจ์œจ์ ์ด๊ฒ ๋‹ค. (+ ์ตœ์†Œํ•œ์œผ๋กœ SELECTํ•ด์„œ.)๋ฌผ๋ก  ์• ์ดˆ์— ๋ชจ๋ธ๋ง ์ฐจ์›์—์„œ ๊ฒฐํ•ฉํ•  ์ผ์„ ๋ฐฐ์ œํ•˜๋„๋ก ์„ค๊ณ„ํ•˜๋Š” ๊ฒŒ ๊ฐ€์žฅ ์ข‹๊ฒ ์ง€๋งŒ.

 

 

 

<์ •๋ฆฌ>

๋งˆ์ง€๋ง‰์œผ๋กœ ๋ฌธ๋ฒ•์„ ์ •๋ฆฌํ•ด ๋‘๊ณ  ๊ธ€์„ ๋งˆ์นœ๋‹ค. ์ˆœ์„œ๋Œ€๋กœ UNION ALL์ค‘๋ณต ๋ฏธ์ œ๊ฑฐ, UNION์ค‘๋ณต ์ œ๊ฑฐ์œผ๋กœ FULL OUTER JOIN์„ ์ ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๋‹ค.

SELECT * FROM t1 
LEFT JOIN t2 ON t1.id = t2.id 
UNION ALL 
SELECT * FROM t1 
RIGHT JOIN t2 ON t1.id = t2.id 
WHERE t1.id IS NULL

 

 

SELECT * FROM t1 
LEFT JOIN t2 ON t1.id = t2.id 
UNION 
SELECT * FROM t1 
RIGHT JOIN t2 ON t1.id = t2.id

 

 

<์ฐธ๊ณ >

ubiq ๋ธ”๋กœ๊ทธ

sewonzzang๋‹˜ ๋ธ”๋กœ๊ทธ

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL

 

 

 

<๋ฐ์ดํ„ฐ ์ฒดํฌ>

<

๋ฌธ์ œ ์ถœ์ฒ˜: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค, ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„ ๊ฐ€์žฅ ๋น„์‹ผ ์‹ํ’ˆ์˜ ์ •๋ณด ์กฐํšŒํ•˜๊ธฐ

ํ…Œ์ด๋ธ”๋ช…: food_product์–ด๋А ๋Œ€ํ˜•๋งˆํŠธ์˜ ์‹ํ’ˆ ์ •๋ณด ํ…Œ์ด๋ธ” ๊ฒฌ๋ณธ 

์ปฌ๋Ÿผ๋ช…: product_id์ œํ’ˆ์‹๋ณ„์ฝ”๋“œ, product_name์ œํ’ˆ๋ช…, product_cd์‹ํ’ˆ์ฝ”๋“œ, category์นดํ…Œ๊ณ ๋ฆฌ๋ช…, price๊ฐ€๊ฒฉ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์„ฑ: 1๊ฐœ ํ…Œ์ด๋ธ”, 5๊ฐœ ์ปฌ๋Ÿผ, 40๊ฐœ ๋กœ์šฐ

>

 

 

 

 

<์‹œ๋‚˜๋ฆฌ์˜ค>

 

๋‹น์‹ ์€ A์‹ํ’ˆ ์˜์—…ํŒ€ ๋‹ด๋‹น์ž๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์ •๋Ÿ‰์ ์œผ๋กœ ์ œํ’ˆ๋ณ„ ํŒ๋งค ์„ฑ๊ณผ๋ฅผ ํ™•์ธํ•˜๊ณ ์ž ๋งˆํŠธ ์ „์‚ฐ ๊ธฐ์žฌ๋œ ์ž์‚ฌ ์ƒํ’ˆ ๊ธฐ๋ฐ˜์œผ๋กœ EDAํƒ์ƒ‰์  ๋ฐ์ดํ„ฐ ๋ถ„์„๋ฅผ ์ง„ํ–‰ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. food_product ํ…Œ์ด๋ธ”์—์„œ ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„๋กœ ๊ฐ€๊ฒฉ์ด ๊ฐ€์žฅ ๋น„์‹ธ๊ฑฐ๋‚˜ ์‹ผ '๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ '์˜ category, price, product_name์„ ์กฐํšŒํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ์ฟผ๋ฆฌ๋ฅผ ์งœ์•ผ ํ• ๊นŒ?

 

 

 

 

 

<ํ’€์ด>

 

'์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„' ์ด๋ผ ํ–ˆ์œผ๋‹ˆ ์ƒํ’ˆ์„ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์–ด์•ผ ํ•œ๋‹ค. ๋˜, GROUP BY์™€ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์ค‘์—๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ์™œ๋ƒ๋ฉด ์—ฐ์‚ฐ๋œ ๊ฒฐ๊ณผ๊ฐ’์ด ์•„๋‹ˆ๋ผ ์—ฐ์‚ฐ์— ๋งž๋Š” ๊ฐ’์„ ๊ฐ€์ง„ ๋กœ์šฐ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋‹ˆ๊นŒ. ์ด ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์ข€ ๋” ๊นŠ์ด ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function VS GROUP BY ํฌ์ŠคํŠธ๋ฅผ ์ฝ์œผ๋ฉด ๋œ๋‹ค.

 

WHERE์ ˆ์ด ๊ธธ์–ด์ง€๊ฒ ๋‹ค. 1) '๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ' category์˜ ์ƒํ’ˆ ์ค‘์— 2) ์‹ํ’ˆ๋ถ„๋ฅ˜๋ณ„๋กœ ๊ฐ€๊ฒฉ์ด ๊ฐ€์žฅ ๋น„์‹ธ๊ฑฐ๋‚˜/ ์‹ผ ์ƒํ’ˆ๋งŒ ๊ณจ๋ผ ์ถœ๋ ฅํ•ด์•ผ ํ•˜๋‹ˆ๊นŒ. ์ด๋ฅผ ๋ฐ˜์˜ํ•ด WHERE์ ˆ์„ ์“ฐ๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค. ์ด๋ฅผ ๋ณด๋ฉด ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ IN ๋’ค์— ์กฐ๊ฑด์ ˆ๋กœ ๋„ฃ์–ด ์คฌ๋Š”๋ฐ, ์ด์— ๋Œ€ํ•ด ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ๋‹ค์ค‘ํ–‰ ์„œ๋ธŒ์ฟผ๋ฆฌ ๊ด€๋ จํ•ด ์ฐพ์•„๋ณด๋ฉด ๋œ๋‹ค.

 

WHERE category IN('๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ')
        AND price IN (SELECT MAX(price) OVER (PARTITION BY category) FROM food_product)
        -- ๊ฐ€์žฅ ๋น„์‹ผ ์ƒํ’ˆ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜
WHERE category IN('๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ')
        AND price IN (SELECT MIN(price) OVER (PARTITION BY category) FROM food_product)
        -- ๊ฐ€์žฅ ์‹ผ ์ƒํ’ˆ์˜ ๋ฆฌ์ŠคํŠธ๋ฅผ ์ถœ๋ ฅํ•˜๊ฑฐ๋‚˜

 

๋˜ํ•œ ์ „๋ฌธ์€ ์•„๋ž˜์™€ ๊ฐ™์ด ์“ธ ์ˆ˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. 

 

SELECT category
        , price
        , product_name
FROM food_product
WHERE category IN('๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ')
        AND price IN (SELECT MAX(price) OVER (PARTITION BY category) FROM food_product)
        -- ๊ฐ€์žฅ ๋น„์‹ผ ์ƒํ’ˆ๋“ค๋งŒ ์ถœ๋ ฅ
ORDER BY price DESC

 

 

SELECT category
        , price
        , product_name
FROM food_product
WHERE category IN('๊ณผ์ž', '๊ตญ', '๊น€์น˜', '์‹์šฉ์œ ')
        AND price IN (SELECT MIN(price) OVER (PARTITION BY category) FROM food_product)
        -- ๊ฐ€์žฅ ์‹ผ ์ƒํ’ˆ๋“ค๋งŒ ์ถœ๋ ฅ
ORDER BY price DESC

 

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL

 

 

 

 

<GROUP BY์™€ ์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function๋Š” ์–ด๋–ป๊ฒŒ ๋‹ค๋ฅธ๊ฐ€>

์œˆ๋„์šฐ ํ•จ์ˆ˜Window Function๋Š” 'ํ–‰์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๊ตฌ๋ถ„ํ•ด ์ฃผ๋Š”' ํ•จ์ˆ˜๋‹ค. ์ด์ฏค ๋งํ•˜๋ฉด ๋‹น์‹  ๋จธ๋ฆฟ์†์— ๋– ์˜ค๋ฅธ ๋ฌธ๋ฒ•์ด ํ•˜๋‚˜ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋งž๋‹ค. GROUP BY. ์ด๊ฒƒ ์—ญ์‹œ ํ–‰์„ ์กฐ๊ฑด์— ๋งž๊ฒŒ ๊ตฌ๋ถ„ํ•ด ์ค€๋‹ค. ๊ทธ๋Ÿฌ๋ฉด ์˜๋ฌธ์ด ๋“ ๋‹ค. GROUP BY ์ ˆ๊ณผ ๋Œ€๋น„ํ•ด ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๊ณ  ๊ทธ๋ž˜์„œ ๊ฒฐ๊ตญ ์–ด๋–ค ์ƒํ™ฉ์— ์‚ฌ์šฉ๋˜๋Š” ๊ฑธ๊นŒ. ์ด๋ฒˆ ํฌ์ŠคํŠธ๋Š” ์ด์ฒ˜๋Ÿผ ์œ ์‚ฌํ•œ ๋ฌธ๋งฅ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๋‘ ๋ฌธ๋ฒ•, GROUP BY ์ ˆ๊ณผ ์œˆ๋„์šฐ ํ•จ์ˆ˜์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ํƒ๊ตฌํ•ด๋ณผ ๊ฒƒ์ด๋‹ค.

 

 

 

 

 

<'ํ–‰์„ ๋ฌถ๋Š”๋‹ค' ๋Š” ํ–‰๋™์— ๋Œ€ํ•œ ์ดํ•ด>

๋ฌธ๋ฒ•์— ๋Œ€ํ•ด ๋‹ค๋ฃจ๊ธฐ ์•ž์„œ์„œ ์ฆ‰ 'ํ–‰์„ ๋ฌถ๋Š”๋‹ค'๋Š” ํ–‰๋™์— ๋Œ€ํ•ด ๋จผ์ € ์ดํ•ดํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค. ํ–‰์„ ๋ฌถ๋Š”๋‹ค๋Š” ๊ฒƒ์€ ์ผ์ฐจ์ ์œผ๋กœ ํ–‰ ์‚ฌ์ด์˜ ๊ณตํ†ต์ ์„ ์ฐพ๋Š”๋‹ค๋Š” ๋œป์ด๋‹ค. ์•„๋ž˜์™€ ๊ฐ™์€ ์—‘์…€ ํŒŒ์ผ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด์ž. 

 

์ด๋ฆ„ ์„ฑ๋ณ„ ๋‚˜์ด
๊น€์—์ด ๋‚จ 15
์ด๋น„ ์—ฌ 17
๊น€์”จ ์—ฌ 22
์ด์ด ๋‚จ 19

 

์ด ์—‘์…€ ํŒŒ์ผ์— 'ํ–‰์„ ๋ฌถ์œผ๋ฉด' ์–ด๋””์— ํฌ์ปค์Šค๋ฅผ ๋‘๋А๋ƒ์— ๋”ฐ๋ผ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‘ ๊ฐ€์ง€ ๊ฒฐ๊ณผ๋ฌผ์ด ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

1) ํ–‰์— ํฌ์ปค์Šค๋ฅผ ๋‘๋Š” ๊ฒฝ์šฐ. ์•„๋ž˜๋Š” ์„ฑ๋ณ„ ๊ธฐ์ค€์œผ๋กœ ํ–‰์„ ๋ฌถ์–ด์„œ ์„ฑ๋ณ„ ๋ณ„ ์ตœ์—ฐ์žฅ์ž๋ฅผ ๊ฐ๊ฐ ์ถœ๋ ฅํ•œ ๊ฒฝ์šฐ๋‹ค.

์ด๋ฆ„ ์„ฑ๋ณ„ ๋‚˜์ด
์ด์ด ๋‚จ 19
๊น€์”จ ์—ฌ 22

 

 

2) ์—ฐ์‚ฐํ•œ ๊ฐ’์— ํฌ์ปค์Šค๋ฅผ ๋‘๋Š” ๊ฒฝ์šฐ. ์•„๋ž˜๋Š” ์ด๋ฆ„์˜ ์ฒซ ๊ธ€์ž, ์„ฑ ๊ธฐ์ค€์œผ๋กœ ํ–‰์„ ๋ฌถ์–ด์„œ ์„ฑ ๋ณ„ ๋‚˜์ด ์ตœ๋Œ€๊ฐ’์„ ๊ฐ๊ฐ ์ถœ๋ ฅํ•œ ๊ฒฝ์šฐ๋‹ค.

์„ฑ๋ณ„ ๋‚˜์ด ์ตœ๋Œ€๊ฐ’
๋‚จ 19
์—ฌ 22

 

 

๋‘˜ ๋ชจ๋‘ ํฌ์ปค์Šค๋งŒ ๋‹ค๋ฅด์ง€ 'ํ–‰์„ ๋ฌถ์—ˆ๋‹ค'๊ณ  ๋ถ€๋ฅผ ๋งŒํ•˜๋‹ค. ์ด๋•Œ ํ›„์ž๋Š” GROUP BY๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ „์ž๋Š” ์–ด๋ ต๋‹ค. GROUP BY๋Š” ํŠน์„ฑ์ƒ ๋™์ผํ•œ ๊ธฐ์ค€์„ ๊ฐ€์ง„ ๋กœ์šฐ๋“ค์„ ํ•˜๋‚˜๋กœ 'ํ•ฉ์น˜๊ณ ' ๋“ค์–ด๊ฐ€๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ GROUP BY๋ฅผ ๊ฐ€์ง„ ์ฟผ๋ฆฌ์˜ SELECT ์ ˆ์—๋Š” GROUP BY๋œ ์ปฌ๋Ÿผ๊ณผ ํ•ฉ์ณ์ง„ ๊ฐ’๋“ค์„ ์—ฐ์‚ฐํ•˜๋Š” ์ง‘๊ณ„ํ•จ์ˆ˜๋ฐ–์— ์˜ฌ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด๋‹ค. ์ด๋•Œ ์ „์ž๋Š” ์œˆ๋„์šฐ ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„๋  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

<์œˆ๋„์šฐ ํ•จ์ˆ˜Window Fuction>

'ํ–‰๊ณผ ํ–‰ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ๋น„๊ต, ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜'๊ฐ€ ์œˆ๋„์šฐ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์ •์˜๋‹ค. ์œ„์—์„œ ์•Œ์•„๋ดค๋“ฏ์ด GROUP BY๋Š” ๋™์ผํ•œ ๊ธฐ์ค€์„ ๊ฐ€์ง€๋Š” ๋กœ์šฐ๋“ค์„ ๋‹ค ํ•ฉ์ณ ๋ฒ„๋ฆฌ์ง€๋งŒ, ์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ๋ณด์กดํ•ด ์ค€๋‹ค. ์ด ๋•Œ๋ฌธ์— GROUP BY๋กœ ํ•˜์ง€ ๋ชป ํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ทธ๋ฃน ๋‚ด์—์„œ ์ˆœ์œ„/ ๋น„์œจ ๋ฝ‘๊ธฐ, ์—ฐ์‚ฐ์— ๋งž๋Š” ๊ฒฐ๊ณผ ๋กœ์šฐ ์ถœ๋ ฅํ•˜๊ธฐ(์ตœ๋Œ€๊ฐ’์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๊ฑฐ๋‚˜) ๋“ฑ.

 

์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™์€ ํ˜•์‹์œผ๋กœ ์“ฐ์ธ๋‹ค.

SELECT WINDOW_FUNCTION (ARGUMENTS) OVER 
( [PARTITION BY ์ปฌ๋Ÿผ] [ORDER BY ์ปฌ๋Ÿผ] [WINDOWING ์ ˆ] )
FROM ํ…Œ์ด๋ธ”๋ช… ; 

 

   1) WINDOW_FUNCTION : ์œˆ๋„์šฐ ํ•จ์ˆ˜ 

   2) ARGUMENTS(์ธ์ˆ˜) : ํ•จ์ˆ˜์— ๋”ฐ๋ผ 0 ~ N๊ฐœ ์ธ์ˆ˜๊ฐ€ ์ง€์ •๋  ์ˆ˜ ์žˆ๋‹ค. 

   3) PARTITION BY ์ ˆ : ์ „์ฒด ์ง‘ํ•ฉ์„ ๊ธฐ์ค€์— ์˜ํ•ด ์†Œ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.   

   4) ORDER BY ์ ˆ : ์–ด๋–ค ํ•ญ๋ชฉ์— ๋Œ€ํ•ด ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•  ์ง€ order by ์ ˆ์„ ๊ธฐ์ˆ ํ•œ๋‹ค.

   5) WINDOWING ์ ˆ : WINDOWING ์ ˆ์€ ํ•จ์ˆ˜์˜ ๋Œ€์ƒ์ด ๋˜๋Š” ํ–‰ ๊ธฐ์ค€์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 

 

 

์ด๋•Œ์˜ WINDOW_FUNCTION์—๋Š” ์ „์šฉ ์œˆ๋„์šฐ ํ•จ์ˆ˜ ์™ธ์—๋„ ๋‹ค์–‘ํ•œ ๊ธฐ์กด ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ๋‹ค ์“ธ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด ๋ถ€๋ถ„์„ ์ด ํฌ์ŠคํŠธ์—์„œ ์ •๋ฆฌํ•˜์ง€๋Š” ์•Š๊ณ  ์ฐธ๊ณ  ํฌ์ŠคํŠธ ์ค‘ ํ•ด๋‹น ๋‚ด์šฉ์— ๋Œ€ํ•ด ์ž˜ ์ •๋ฆฌํ•œ ํฌ์ŠคํŠธ๊ฐ€ ์žˆ์–ด ์žฌ์ธ์šฉํ•œ๋‹ค*๋งํฌ๋Š” SQL ์ „๋ฌธ๊ฐ€ ๊ฐ€์ด๋“œ 2013 Edition๋ฅผ ์š”์•ฝํ–ˆ๋‹ค๊ณ  ํ•œ๋‹ค. ํ•ด๋‹น ํฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•ด ์“ฐ๋ฉด, WINDOW_FUNCTION์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํ•จ์ˆ˜๋“ค์ด ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

   1) ์ˆœ์œ„ ํ•จ์ˆ˜: RANK, DENSE_RANK, ROW_NUMBER

   2) ์ง‘๊ณ„ ํ•จ์ˆ˜: SUM, MAX, MIN, AVG, COUNT

   3) ๋น„์œจ ํ•จ์ˆ˜: CUME_DIST, PERCENT_RANK, NTILE, RATIO_TO_REPORT

 

์œˆ๋„์šฐ ํ•จ์ˆ˜๋Š” SQL์˜ ๋‹ค๋ฅธ ๋ฌธ๋ฒ•๋“ค๋ณด๋‹จ ๊ฝค ๋‚œ์ด๋„๊ฐ€ ์žˆ์–ด ์ง„์ž…์žฅ๋ฒฝ์ด ๋†’์ง€๋งŒ, ์ผ๋‹จ ์ตํ˜€๋‘๊ณ  ๋‚˜๋ฉด ์ฟผ๋ฆฌ ๋‹ค์ด์–ดํŠธ์— ๋„์›€์„ ์ฃผ๋Š” ํšจ์ž ํ•จ์ˆ˜๋‹ค. ์‹œ๊ฐ„ ๋‚ด์„œ ์ต์ˆ™ํ•ด์ ธ ๋ณด์ž.

 

 

 

 

 
๋”๋ณด๊ธฐ
TOOLS/SQL

 

 

 

<๋ฌธ์ œ>

<์›๋ณธ ๋ฌธ์ œ: HackerRank The Report>

 

์‹œํ—˜์ด ๋๋‚ฌ๋‹ค. ํ•˜์ง€๋งŒ ๋ถˆํ–‰ํžˆ๋„ ๋‹น์‹ ์€ ํ•™๊ต ์„ ์ƒ๋‹˜์ด๋‹ค. ์•„์ด๋“ค์ด ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ํ•˜๊ตํ•˜๋Š” ๊ฒƒ๊ณผ ๋ณ„๊ฐœ๋กœ ๋‹น์‹ ์€ ์ฑ„์ ๋œ ์ ์ˆ˜ ๊ธฐ์ค€์œผ๋กœ ์•„์ด๋“ค์˜ ๋“ฑ๊ธ‰์„ ๋งค๊ฒจ์•ผ ํ•  ์ค‘์š”ํ•œ ์ฑ…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๋‹น์‹  ์•ž์—๋Š” Students ํ…Œ์ด๋ธ”๊ณผ Grades ํ…Œ์ด๋ธ”์ด ๋†“์—ฌ ์žˆ๋‹ค. ํ•˜๋‚˜๋Š” ํ•™์ƒ์˜ ์ด๋ฆ„๊ณผ ์ ์ˆ˜๊ฐ€ ๋“ค์–ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด๊ณ  ๋‚˜๋จธ์ง€ ํ•˜๋‚˜๋Š” ์ ์ˆ˜๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํ•™์ƒ์„ ๊ทธ๋ฃน ๋‚˜๋ˆ„๋Š” ๋“ฑ๊ธ‰ ํ…Œ์ด๋ธ”์ด๋‹ค. ๋‘ ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค. ๋น„๊ต์  ๋œ ์‚ฝ์งˆํ•˜๊ณ  ์•„์ด๋“ค์˜ ๋“ฑ๊ธ‰์„ ๋งค๊ธธ ์ฟผ๋ฆฌ๋ฅผ ์งค ๋ฐฉ๋ฒ•์€ ์—†์„๊นŒ.

 

 

Students ํ…Œ์ด๋ธ”.

 

Grades ํ…Œ์ด๋ธ”.

 

 

 

<ํ’€์ด>

 

๋ฌผ๋ก  ์ €๋ฒˆ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ CASE WHEN์œผ๋กœ ์ผ์ผ์ด ์ง€์ •ํ•ด์ฃผ๋Š” ๋ฐฉ๋ฒ•๋„ ์žˆ๊ฒ ์ง€๋งŒ, MIN ๊ฐ’๊ณผ MAX ๊ฐ’์ด ์žˆ๋Š” ํ…Œ์ด๋ธ”์ด ์ด๋ ‡๊ฒŒ ์˜ˆ์˜๊ฒŒ ์žˆ๋‹ค๋ฉด LEFT JOIN์œผ๋กœ ๋ฌถ๊ณ  BETWEEN๋งŒ ๊ฑธ์–ด ์ค˜๋„ ์ „์ฒด ๋“ฑ๊ธ‰์„ ๋ฝ‘์„ ์ˆ˜ ์žˆ๋‹ค. LEFT JOIN์€ INNER JOIN๊ณผ ๋‹ค๋ฅด๊ฒŒ ๋‘ ํ…Œ์ด๋ธ”์— ๋™์ผํ•œ ๊ฐ’์ด ์—†์–ด๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ, ์ผ๋‹จ ์˜†์— ๋ถ™์—ฌ ๋†“๊ณ  ๊ฐ™์€ ํ…Œ์ด๋ธ”์— ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์—ฐ์‚ฐ์—๋งŒ ๋ฝ‘์•„ ์“ฐ๋Š” ๊ฒƒ์ด๋‹ค.

 

SELECT IF(Grade < 8, NULL, Name), g.Grade, s.Marks
FROM Students s
	LEFT JOIN Grades g ON s.Marks BETWEEN g.Min_Mark AND g.Max_Mark
ORDER BY Grade DESC, Name, Marks

 

 

Grades ํ…Œ์ด๋ธ”๋Œ€๋กœ ์ž˜ ๋ถ„๋ฆฌ๋ผ ๋‚˜์˜จ๋‹ค.

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL

 

 

 

 

 

 

 

๊ฑฐ๊ธฐ์—, ๊ทธ๋Ÿฌ๋‹ˆ๊นŒ '์ƒ์ˆ˜'์˜ ์ฐจ์—๋Š” ์‹ญ ๋…„์— ๊ฑธ์ณ ์Œ“์ธ ์นดํƒˆ๋กœ๊ทธ ๋ญ‰์น˜๊ฐ€ ์Œ“์—ฌ ์žˆ์—ˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ๋‹ค์–‘ํ–ˆ๊ณ  ๋‹น์—ฐํžˆ ์ƒ‰, ์ข…์ด์˜ ์ข…๋ฅ˜์™€ ํŽ˜์ด์ง€ ์ˆ˜, ๋‚ก์€ ์ •๋„์™€ ์ธ์‡„ ํ†ค ๊ทธ๋ฆฌ๊ณ  ๋ƒ„์ƒˆ๊ฐ€ ๋‹ฌ๋ž๋‹ค. ๊ฑฐ๊ธฐ์—์„  ๋ถ„๋ช…ํ•œ ์ถ•์ ์˜ ๋ƒ„์ƒˆ๊ฐ€ ๋‚ฌ๋‹ค. ์˜ค๋žœ ์‹œ๊ฐ„ ๋ถ€์‹๊ณผ ํก์ฐฉ์ด ์ด๋ฃจ์–ด์ง„ ๋’ค์—์•ผ ๋‚˜๋Š” ์ข…์ด ๋ณธ์—ฐ์˜ ๊ฒƒ์ด ๋‚ ์•„๊ฐ€ ์ฃผ๋ณ€ ํ™˜๊ฒฝ์— ์ˆœ์‘ํ•˜๊ณ  ๊ทธ ๊ฒฐ๊ณผ ์™„์ „ํ•œ ๋ณ€ํ™”๊ฐ€ ์ด๋ฃจ์–ด์ง„ ๋ƒ„์ƒˆ. ์–ด๋–ค ๊ธฐ์–ต์€ ์‚ฌ๋ผ์ง€์ง€ ์•Š๋Š”๋‹ค. ํฐ ์…”์ธ ์— ๋‹ฌ๋ผ ๋ถ™์€ ์ปคํ”ผ ์ž๊ตญ์ฒ˜๋Ÿผ ๋๊นŒ์ง€ ๋‚จ๋Š”๋‹ค. ์ž‘๊ฐ€๋Š” ๋ˆ์งˆ๊ธฐ๊ฒŒ ์ ์ฒด์— ๋Œ€ํ•ด ์“ด๋‹ค.

 

์‹ ์ดŒ์˜ ์–ด๋А ์ค‘๊ณ  ์„œ์ ์—์„œ ์‚ผ ๋…„ ์ „์— ๊ตฌ๋งคํ•œ ์ด ์ฑ…์—๋Š” ์ด์ „ ์ฃผ์ธ์ด ๊ทธ์–ด ๋†“์€ ํ”์ ์ด ์ ์ฒด๋ผ ์žˆ๋‹ค. ๋‚ด๊ฒŒ๋Š” ์˜์›ํžˆ '๋ฏธ์ง€์ˆ˜'์ผ ๊ทธ ์‚ฌ๋žŒ์€ ๊ฒฐ์ฝ” ๋ฌด์‹œํ•  ์ˆ˜ ์—†๋Š” ๊ตต๊ธฐ์˜ ํ”์ ์„ ์ฑ…์— ๋‚จ๊ฒจ ๋†“์•˜๋‹ค. '์ธ์‚ฌ์ ์ฒด'. ์—ฐ๋‘์ƒ‰ ์ƒ‰์—ฐํ•„๋กœ ์ง„ํ•˜๊ฒŒ ๊ทธ์–ด์ง„ ๋ฐ‘์ค„์€ ์ด ์ฑ…์˜ ์ƒ์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ๋”ฐ๋ผ๋‹ค๋‹ ํ…Œ๋‹ค. ๋‚˜๋Š” ์ด ์ฑ…์„ ์ฝ์œผ๋ฉฐ ์ƒ์ˆ˜์™€ ๊ฒฝ์• ์— ๋”ํ•ด ๋ฏธ์ง€์ˆ˜์˜ ๊ฑธ์Œ์„ ์ข†๊ฒŒ ๋œ๋‹ค. ๋•Œ๋ก  ์—ฐ๋‘์ƒ‰ ์ƒ‰์—ฐํ•„๋กœ ๊ตต๊ฒŒ, ๋•Œ๋ก  ์—ฐํ•„๋กœ ๊ฐ๋„๋ฅผ ๋‹ฌ๋ฆฌํ•ด ๋‘์–ด ๋ฒˆ ๊ทธ๋ ค์ง„, ๋ฐ‘์ค„์„ ๋”ฐ๋ผ ๊ฐ€๋ฉฐ ๋‚˜๋Š” ๊ทธ ์‚ฌ๋žŒ์„ ์ฝ์–ด ๋ณด๋ ค ์• ์“ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์˜ค๋…ํ•˜๊ฒ ์ง€. ๋‚˜๋Š” ๊ทธ๊ฐ€ ์•„๋‹ˆ๋‹ˆ๊นŒ. ํ‰์ƒ ํ•ด๋…๋˜์ง€ ์•Š๋Š” ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ์ƒ๊ฐํ•œ๋‹ค. ์ฐพ์ง€๋„ ๋ชป ํ•  ์„œ๋ฅ˜ ๋ฌด๋”๊ธฐ ์•ˆ์— ์ ์ฒด๋œ ๋งˆ์Œ๋“ค. ๋ณธ๋ž˜์˜ ํ˜•ํƒœ๋ฅผ ์žƒ๊ณ  ์ œ๋ฉ‹๋Œ€๋กœ ์˜ค๋…๋์ง€๋งŒ ์—ฌ์ „ํžˆ ์†Œ์ค‘ํ•œ ๊ฒƒ๋“ค. ๊ทธ๋Ÿฐ ๊ฒƒ๋“ค์— ๋Œ€ํ•ด ๊ฐ€๋” ์ƒ๊ฐํ•œ๋‹ค. 

 

 

 

 

๋”๋ณด๊ธฐ
READING/Short-term

<๋ฌธ์ œ>

<์›๋ณธ ๋ฌธ์ œ: ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ฐ€๊ฒฉ๋Œ€๋ณ„ ์ƒํ’ˆ ๊ฐœ์ˆ˜ ๊ตฌํ•˜๊ธฐ>

 

์–ด๋–ค ์˜จ๋ผ์ธ ์‡ผํ•‘๋ชฐ์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ด ์‡ผํ•‘๋ชฐ์€ ๋งŒ ์› ๋Œ€๋ถ€ํ„ฐ ํŒ”๋งŒ ์› ๋Œ€๊นŒ์ง€ ๋‹ค์–‘ํ•œ ๊ฐ€๊ฒฉ๋Œ€์˜ ์ƒํ’ˆ์„ ์ทจ๊ธ‰ํ•˜๊ณ  ์žˆ๋‹ค. ์–ด๋А ๋‚  ํ”„๋กœ๋•ํŠธ ํŒ€์—์„œ ๋ฐ์ดํ„ฐ ์ถ”์ถœ ์š”์ฒญ์ด ๋“ค์–ด์™”๋‹ค. ์ œํ’ˆ์„ ๊ฐ€๊ฒฉ๋Œ€๋ณ„๋กœ ํ”„๋กœ๋ชจ์…˜ ์ง„ํ–‰ํ•˜๋ ค ํ•˜๋‹ˆ ๋งŒ ์› ๋‹จ์œ„๋กœ ๊ทธ๋ฃน์„ ๋‚˜๋ˆ  ๋‹ฌ๋ผ๊ณ . ์ด๋Ÿฐ ์ƒํ™ฉ์—์„œ๋Š” ์ฟผ๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์งœ์•ผ ํ• ๊นŒ? ์ œํ’ˆ ์ •๋ณด๊ฐ€ ๋“ค์–ด ์žˆ๋Š” product ํ…Œ์ด๋ธ”์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

Column name Type Nullable
product_id INTEGER FALSE
product_code VARCHAR(8) FALSE
price INTEGER FALSE

 

product_id product_code price
1 A1000011 10000
2 A1000045 9000
3 C3000002 22000
4 C3000006 15000
5 C3000010 30000
6 K1000023 17000

 

 

 

 

 

<ํ’€์ด>

 

CASE WHEN์œผ๋กœ ์ผ์ผ์ด ์ง€์ •ํ•ด์ค˜๋„ ๋˜์ง€๋งŒ, ๊ฐ€๊ฒฉ์ด ๋“ค์–ด๊ฐ„ ์ปฌ๋Ÿผ์ด ์žˆ๋Š” ์ƒํ™ฉ์ด๋ฏ€๋กœ ์กฐ๊ฑด์— ๋ถ€ํ•ฉ๋˜๋Š” ๋Œ€๋กœ ๊ณ„์‚ฐํ•ด์„œ ๋‹ต์„ ๋ฝ‘์•„๋„ ๋œ๋‹ค. FLOOR์™€ TRUNCATE๋กœ ๊ฐ๊ฐ ์•„๋ž˜์™€ ๊ฐ™์ด ํ’€ ์ˆ˜ ์žˆ๋‹ค.

 

 

(1) FLOOR

์•„๋ž˜์™€ ๊ฐ™์ด ๊ฐ€๊ฒฉ์„ 10000์œผ๋กœ ๋‚˜๋ˆˆ ๋’ค FLOOR๋ฅผ ์ ์šฉํ•ด ์ฃผ๋ฉด ๊ฐ ๊ฐ€๊ฒฉ๋Œ€๋ณ„๋กœ ์œ ๋‹ˆํฌํ•œ ๊ทธ๋ฃน์œผ๋กœ ๋ฌถ์ธ๋‹ค.   

 

SELECT FLOOR(price / 10000)*10000 AS price_group
             , COUNT(product_id) AS products
FROM product
GROUP BY price_group
ORDER BY price_group

 

 

 

 

 

(2)TRUNCATE

์•„๋ž˜์ฒ˜๋Ÿผ CASE WHEN์œผ๋กœ 10,000์› ๋ฏธ๋งŒ ์ƒํ’ˆ์„ NULL ๊ฐ’์œผ๋กœ ๋นผ ๋ฒ„๋ฆฐ ๋’ค ๋‚˜๋จธ์ง€๋ฅผ TRUNCATE ํ•ด ์ค˜๋„ ๋™์ผํ•œ ๋ฐฉ์‹์œผ๋กœ ๋ฌถ์ธ๋‹ค.

 

SELECT CASE
        WHEN price < 10000 THEN NULL
        ELSE TRUNCATE(price, -4) END AS price_group
        , COUNT(product_id) AS products
FROM product
GROUP BY price_group
ORDER BY price_group

 

 

 

๊ฒฐ๊ณผ๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์ด ๋‚˜์˜จ๋‹ค.

 

price_group products
10000 2
20000 2
30000 3
40000 4
50000 6
60000 7
70000 2
80000 4

 

GROUP BY์— product_code๋ฅผ ๋„ฃ์–ด ์ฃผ๋ฉด ์•„๋ž˜์™€ ๊ฐ™์ด ๊ทธ๋ฃน๋ณ„ ์ƒํ’ˆ์ฝ”๋“œ๋ฅผ ์กฐํšŒํ•  ์ˆ˜ ์žˆ๊ฒ ๋‹ค.

 

price_group product_code
10000 A3000001
10000 C3000002
20000 A2000002
20000 C4000002
30000 D2000000
... ...

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL

 

 

์ด์ œ ๋‚˜๋Š” ์œ ๋ น, ํ•ดํŒŒ๋ฆฌ, ๊ฟˆ์˜ ๊ณตํ†ต๋œ ๋ฌผ์„ฑ์— ๊ด€ํ•ด ์ ์„ ์ˆ˜ ์žˆ๋‹ค. ์„ธ์ƒ์—์„œ ์œ ๋ฆฌ๋˜๊ณ  ์˜ค๋กฏ์ด ํ•œ ์‚ฌ๋žŒ์˜ ์•ˆ์—๋งŒ ์กด์žฌํ•˜๋Š” ๊ฒƒ๋“ค์˜ ์„ ๋“ํ•œ ์งˆ๊ฐ์„ ๋А๋‚„ ์ˆ˜ ์žˆ๋‹ค. ํŒŒ๋ฆฌํ•œ ๋‚ฏ๋น›์˜ ์—ฌ์ž๊ฐ€ ํ•ดํŒŒ๋ฆฌ ๋ชจ์–‘์˜ ์œ ๋ น๊ณผ ๊ฟˆ์„ ๋ฑ‰์–ด๋‚ด๋Š” ๋ชจ์Šต์„ ๋ณธ๋‹ค. ๋งŒ์ง„๋‹ค. ๊ธฐ์ดํ•  ์ •๋„๋กœ ์ฐจ๋‹ค. ๊ธˆ์ƒˆ ์†์„ ๋–ผ์ง€๋งŒ ๋‹ค์‹œ๊ธˆ ์ด๋Œ๋ฆฐ๋‹ค. ์—์šฐ๋กœํŒŒ์˜ ๋ฐ”๋‹ค๋ฅผ ๋”๋“ฌ๋Š” ๊ฒƒ ๊ฐ™์€ ์ฐจ๊ฐ€์›€์— ๋งคํ˜น๋œ๋‹ค. ๊ด‘ํ™œํ•œ ์šฐ์ฃผ์˜ ํ˜•ํƒœ์™€ ๊ทธ๊ฒƒ์„ ์ด๋ฃจ๋Š” ๊ฐ€์žฅ ์ž‘์€ ๊ฒƒ์˜ ํ˜•ํƒœ๋Š” ๊ธฐ๋ฌ˜ํ•˜๊ฒŒ ๋‹ฎ์•˜๋‹ค์ง€. ์ด๋ ‡๊ฒŒ๋‚˜ ๊ฐ€๊นŒ์šด ๊ฒƒ์ด ์ง€๋…ํ•˜๊ฒŒ ๋ฉ€๊ฒŒ ๋А๊ปด์ง€๋Š” ๊ฒƒ๋„ ์ž์—ฐ์˜ ์„ญ๋ฆฌ๋ฅผ ๋”ฐ๋ผ์„œ์ธ ๊ฑธ๊นŒ. ์›”์‹์˜ ๋’คํŽธ์—์„œ ์˜ค๋ž˜ ์žŠ๊ณ  ์žˆ์—ˆ๋˜ ํ•ดํŒŒ๋ฆฌ ๋–ผ๋ฅผ ๋ณธ๋‹ค.

 

 

 

 

๋”๋ณด๊ธฐ
READING/Short-term

๋ฆฐ ๋ถ„์„, ์•จ๋ฆฌ์Šคํ…Œ์–ด ํฌ๋กค ์ €

 

 

๋‚˜์นจ๋ฐ˜์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ๋А๊ผˆ๋‹ค. ๋ง์—†์ด ํ‘œ์ •์„ ์ฐก๊ทธ๋ฆฌ๊ณ  ์žˆ๋Š” ์ง€ํ‘œ๋“ค์„ ๋ณด๊ณ  ์žˆ์„ ๋•Œ๋ฉด, ๋ฌด์Šจ ๋ง๋ง๋Œ€ํ•ด์— ํ‘œ๋ฅ˜ํ•ด ์˜จ ๊ฒƒ๋งŒ ๊ฐ™์•˜๋‹ค. ์ง€๋„๋„ ๋ฐฉํ–ฅ๋„ ์—†์œผ๋‹ˆ ์ง๊ฐ์— ์˜์ง€ํ•ด ๋‚˜์•„๊ฐ€์•ผ ํ–ˆ๋‹ค. ์‹คํŒจํ•˜๋“  ์„ฑ๊ณตํ•˜๋“  ์—ฌ์ „ํžˆ ๋‚ด ๋ฐ‘์—” ๋ฐ”๋‹ค๊ฐ€ ์žˆ์—ˆ๊ณ  ๋‚˜๋Š” ๋ฐฐ ํ•œ ์ฒ™์„ ๊ฐ€์ง„ ์ฑ„ ์ง€๋„๋„ ๋‚˜์นจ๋ฐ˜๋„ ์—†์ด ํ‘œ๋ฅ˜ํ•ด์•ผ ํ–ˆ๋‹ค. ๋‚˜์นจ๋ฐ˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ถ„์„์„ ๋ฐฐ์› ์ง€๋งŒ ์—ฌ์ „ํžˆ ์–ด๋ ค์› ๋‹ค. ๋‚ด๊ฐ€ ์ •ํ™•ํžˆ ์–ด๋””์ฏค ์žˆ๋Š” ๊ฑฐ์ง€, ์•Œ๋ ค ์ค„ ์ง€๋„๊ฐ€ ํ•„์š”ํ–ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ฆฐ ๋ถ„์„์€ ์ด์— ๋Œ€ํ•œ ์ข‹์€ ์ง€๋„์˜€๋‹ค. (์กฐ๊ธˆ ๋‚ก๊ธด ํ–ˆ์ง€๋งŒ. 19~20๋…„ ์ฏค์ด ์ด ์ฑ…์˜ ์ „์„ฑ๊ธฐ์˜€๋˜ ๊ฒƒ ๊ฐ™๋‹ค. 23๋…„ ๋„˜์–ด๊ฐ€์„œ ์“ด ๊ธ€์€ ๊ฑฐ์˜ ์—†๋”๋ผ.) ์ž์ฃผ ๊บผ๋‚ด๋ณด๊ฒŒ ๋  ๊ฒƒ ๊ฐ™๋‹ค. ์‚ฌ์—… ๋ชจ๋ธ ์ „๋ฐ˜์— ๊ด€์—ฌํ•ด์•ผ ํ•˜๋Š” ์ฐฝ์—…์ž์™€ PM๋ฟ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ ๋ถ„์„๊ฐ€๋“ค์—๊ฒŒ๋„ ์ข‹์€ ์ฑ…์ด๋‹ค. ์ง€ํ‘œ๋ฅผ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•๋ก ์ด ๊ฝค ์ƒ์„ธํ•˜๊ฒŒ ์จ์ ธ ์žˆ๋Š”๋ฐ GA4๋‚˜ ์•ฐํ”Œ๋ฆฌํŠœ๋“œ ๋“ฑ ๋ถ„์„ ํˆด์— ์ ์šฉํ•˜๋ฉด ๊ฝค ๊ตฌ์ฒด์ ์œผ๋กœ ๋ฐฉํ–ฅ ์žก์„ ์ˆ˜ ์žˆ๊ฒ ๋‹ค ๋А๊ปด์ ธ์„œ. ํŠนํžˆ ์•ฐํ”Œ๋ฆฌํŠœ๋“œ์˜ ๋ถ๊ทน์„ฑ ์ง€ํ‘œ์™€ ์ด ์ฑ…์—์„œ ๋‹ค๋ฃจ๋Š” OMTMOne Metric That Matter์€ ๊ฑฐ์˜ ๋™์ผํ•œ ๊ฐœ๋… ๊ฐ™์•˜๋‹ค. ์ด๋Ÿฐ ๊ด€์ ์œผ๋กœ ๋ณธ ๋ถ„์ด ๋˜ ์žˆ๋‚˜ ์‹ถ์–ด ์ฐพ์•„๋ดค๋Š”๋ฐ, ๊ฐ•ํ•œ๋ณ„ ๋ถ„์„๊ฐ€ ๋ถ„์ด ์ด์— ๊ด€๋ จํ•ด ๋‹ค๋ค˜๋˜ ๊ธ€์ด ์žˆ์–ด์„œ ์ฒจ๋ถ€ํ•ด ๋ณธ๋‹ค. (๋งํฌ

 

 

 

 

๋”๋ณด๊ธฐ
READING/Short-term

 

 

 

๋ฐ์ดํ„ฐ๋ฅผ ์Šฌ๊ธฐ๋กญ๊ฒŒ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•ด

 

๊ทธ๊ฑฐ ์•Œ๊ณ  ์žˆ๋Š”๊ฐ€. ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ๊ฐ€ ํ•˜๋ฒ„๋“œ ๋น„์ฆˆ๋‹ˆ์Šค ๋ฆฌ๋ทฐ์—์„œ ์„ ์ •ํ•œ 21์„ธ๊ธฐ์—์„œ ๊ฐ€์žฅ ์„น์‹œํ•œ ์ง์—…์ธ ๊ฑฐ(Data Scientist: The Sexxist Job of the 21st Century, 2012). ์‹ญ์—ฌ ๋…„์ด ์ง€๋‚ฌ์ง€๋งŒ ํ˜„์žฌ ์ถ”์ด๋ฅผ ๋ณด๋ฉด ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ๊ฐ€ ์™•์ขŒ์—์„œ ๋‚ด๋ ค์˜ฌ ์ผ์€ ์•„์ง ์—†๋Š” ๊ฒƒ ๊ฐ™๋‹ค. 

 

๋ฐ์ดํ„ฐ๋ผ๋Š” ๋ถ„์•ผ๊ฐ€ ๋– ์˜ค๋ฅธ ์ง€ ์‹ญ์—ฌ ๋…„์ด ์ง€๋‚ฌ๊ณ  ์—ฌ์ „ํžˆ ์œ ๋งํ•˜์ง€๋งŒ ์šฐ๋ฆฌ ์ฃผ๋ณ€์€ ๋ฐ์ดํ„ฐ์™€ ๋‚ด์™ธํ•˜๊ณ  ์žˆ๋Š” ๋“ฏํ•˜๋‹ค. ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ์ง€๋งŒ ๋„๊ตฌ์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜์ง€๋Š” ๋ชป ํ•œ๋‹ค. ์™ธ๋ ค ํœ˜๋‘˜๋ฆฐ๋‹ค. ์ด๋Ÿฐ ๊ธฐ ์„ผ ๋ฐ์ดํ„ฐ๋ฅผ ์Šฌ๊ธฐ๋กญ๊ฒŒ ์ž˜ ๋‹ค๋ฃจ๋Š” ๋ฐฉ๋ฒ•์— ๊ด€ํ•ด, ๋งํฌ๋“œ์ธ์˜ ๋ฐ์ดํ„ฐ ์‚ฌ์ด์–ธํ‹ฐ์ŠคํŠธ ๋ชจ๋‹ˆ์นด ๋กœ๊ฐ€ํ‹ฐMonica Rogati๊ฐ€ ์ •๋ฆฌํ•œ ๊ธ€์ด ์žˆ์–ด ๊ณต์œ ํ•ด ๋ณธ๋‹ค. ๊ธ€์€ ๋ฆฐ ๋ถ„์„Lean analytics์—์„œ ๊ฐ€์ ธ์™”์œผ๋ฉฐ ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ์ผ๋ถ€ ์ˆ˜์ •ํ–ˆ๋‹ค.

 

๋ฐ์ดํ„ฐ๋Š” ์˜์‚ฌ๊ฒฐ์ •์˜ ๋„๊ตฌ๋‹ค. ํœ˜๋‘˜๋ฆฌ์ง€ ๋ง๊ณ  ํœ˜๋‘˜๋Ÿฌ๋ณด์ž.

 

 

 

 

๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ํ”ผํ•ด์•ผ ํ•  ์—ด ๊ฐ€์ง€ ํ•จ์ •

 

ํ•˜๋‚˜, ๋ฐ์ดํ„ฐ์— ๊ฒฐ์ ์ด ์—†๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๋Š” ๊ฒƒ. ์ด๊ฑด ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ๊ฐ„๊ณผํ•˜๋Š” ๋ถ€๋ถ„์ธ๋ฐ, ๋ฐ์ดํ„ฐ๋Š” ์™„๋ฒฝํ•˜์ง€ ์•Š๋‹ค. ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ์˜ ๊ฒฐ์ ์„ ์ œ๊ฑฐํ•˜๋Š” ์ „์ฒ˜๋ฆฌ ๊ณผ์ •์ด ๋ฐ์ดํ„ฐ ๋ถ„์„ ์‹œ๊ฐ„์˜ ๋Œ€๋ถ€๋ถ„์„ ์žก์•„๋จน๋Š” ๊ฒฝ์šฐ๋„ ๋งŽ๋‹ค. ํ˜น์‹œ, ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ์—์„œ null์ด ๋ช‡ ํผ์„ผํŠธ์ฏค ๋˜๋Š”์ง€. ๊ทธ ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค์ธก์ •์ด ๋๋Š”์ง€ ๊ฒ€์ฆํ•ด ๋ดค๋‚˜. ์ธก์ • ์ž์ฒด์— ์˜ค๋ฅ˜๊ฐ€ ์žˆ์–ด null ๊ฐ’๋งŒ ํ•œ ์‚ผ์‹ญ ํผ์„ผํŠธ ๋‚˜์˜ค๊ณ  ์šฐํŽธ๋ฒˆํ˜ธ 90210 ์ง€์—ญ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ชฐ๋ ค ๋ฒ„๋ฆฌ๋Š” ์ผ๋“ค๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

 

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

 

์…‹, ์—ด์™ธ์˜ ์‚ฌ์šฉ์ž๋“ค์„ ๋ฐฐ์ œํ•˜๋Š” ๊ฒƒ. ์–ด๋–ค ์›น์‚ฌ์ดํŠธ๋ฅผ ํ•˜๋ฃจ์— ์ฒœ ๋ฒˆ ์ด์ƒ ๋ฐฉ๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์›น์‚ฌ์ดํŠธ์˜ ์—ดํ˜ˆ ํŒฌ์ผ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ฝ˜ํ…์ธ ๋ฅผ ์ˆ˜์ง‘ํ•ด ๊ฐ€๋Š” ๊ฒ€์ƒ‰ ๋ด‡์ผ์ง€๋„ ๋ชจ๋ฅธ๋‹ค. ์–ด๋–ค ๊ฒฝ์šฐ๋“  ์ด๋“ค์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ์‹ค์ˆ˜์ผ ์ˆ˜ ์žˆ๋‹ค.

 

๋„ท, ๋ฐ˜๋Œ€๋กœ ์—ด์™ธ์˜ ์‚ฌ์šฉ์ž๋“ค์„ ํฌํ•จ์‹œํ‚ค๋Š” ๊ฒƒ. ํ•˜๋ฃจ์—๋„ ์ฒœ ๋ฒˆ ์ด์ƒ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์€ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๊ฒƒ์„ ์•Œ๋ ค์ค„ ์ˆ˜๋„ ์žˆ์–ด์„œ ์ •์„ฑ์ ์ธ ๊ด€์ ์—์„œ๋Š” ํฅ๋ฏธ๋กœ์šด ๋Œ€์ƒ์ด๊ฒ ์ง€๋งŒ ์ผ๋ฐ˜ ๋ชจ๋ธ์„ ๊ตฌ์ถ•ํ•  ๋•Œ๋Š” ๋„์›€์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. "๋ฐ์ดํ„ฐ ๊ธฐ๋ฐ˜ ์ œํ’ˆ์„ ๊ตฌ์ถ•ํ•  ๋•Œ๋Š” ์ด๋Ÿฐ ์‚ฌ์šฉ์ž๋“ค์„ ๋ฐฐ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์›น์‚ฌ์ดํŠธ์˜ '์ถ”์ฒœ' ๊ธฐ๋Šฅ์—์„œ ํ•˜๋“œ์ฝ”์–ด ํŒฌ๋“ค์ด ์ข‹์•„ํ•˜๋Š” ์•„์ดํ…œ์„ ๋ชจ๋“  ์œ ์ €์—๊ฒŒ ์ถ”์ฒœํ•  ๊ฒ๋‹ˆ๋‹ค." ๋ชจ๋‹ˆ์นด๋Š” ์กฐ์–ธํ•œ๋‹ค.

 

๋‹ค์„ฏ, ๊ณ„์ ˆ์  ๋ณ€๋™์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ. "์˜ฌํ•ด ์„ฑ์žฅ๋ฅ ์ด ๊ฐ€์žฅ ๋†’์€ ์ง์—…์ด '์ธํ„ด'์ด๋ผ๊ณ ? ์ž ๊น, ์ง€๊ธˆ์€ 3์›”์ด์ž–์•„." ํŒจํ„ด์„ ์‚ดํŽด๋ณผ ๋•Œ, ์‹œ๊ฐ„/ ์š”์ผ/ ์›”์— ๋”ฐ๋ฅธ ๋ณ€ํ™”๋ฅผ ๊ณ ๋ คํ•˜์ง€ ์•Š์œผ๋ฉด ์ž˜๋ชป๋œ ์˜์‚ฌ๊ฒฐ์ •์œผ๋กœ ์ด์–ด์ง„๋‹ค. ์„ ํ’๊ธฐ๊ฐ€ ์ฃผ๋ ฅ ์ œํ’ˆ์ธ ์‡ผํ•‘๋ชฐ์—์„œ ์›”๋งค์ถœ 1์–ต์„ ํ–ˆ๋‹ค๋ฉด ์ดˆ๋ด„์ธ 3์›”์—๋Š” ์„ ๋ฐฉํ•œ ๊ฑฐ๊ฒ ์ง€๋งŒ ํ•œ์—ฌ๋ฆ„์ธ 8์›”์—๋Š” ์™„์ „ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ.

 

์—ฌ์„ฏ, ์„ฑ์žฅ์„ ํ‰๊ฐ€ํ•  ๋•Œ ์ „์ฒด ๊ทœ๋ชจ๋ฅผ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ. ์ •ํ™ฉ ์ •๋ณด๋Š” ๋งค์šฐ ์ค‘์š”ํ•˜๋‹ค. "์‚ฌ์—…์„ ๋ง‰ ์‹œ์ž‘ํ–ˆ์„ ๋•Œ๋Š” ๊ฐ€์กฑ์ด ํšŒ์› ๊ฐ€์ž…๋งŒ ํ•ด ์ฃผ์…”๋„ ์‚ฌ์šฉ์ž ์ˆ˜๊ฐ€ ๋‘ ๋ฐฐ๋กœ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." ๋ชจ๋‹ˆ์นด๋Š” ๋งํ•œ๋‹ค.

 

์ผ๊ณฑ, ์ง€๋‚˜์น˜๊ฒŒ ๋งŽ์•„ ์˜๋ฏธ๋ฅผ ์žƒ์€ ๋ฐ์ดํ„ฐ. ๋Œ€์‹œ๋ณด๋“œ๊ฐ€ ์žˆ์–ด๋„ ์–ด๋–ค ๋ฐ์ดํ„ฐ๋ฅผ ๋ด์•ผ ํ•  ์ง€ ๋ชจ๋ฅด๋ฉด ์•„๋ฌด ์†Œ์šฉ์ด ์—†๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ์—๋Š” ๊ณ ๊ฐ์„ ์ฝ”ํ˜ธํŠธ๋‚˜ RFM ๋ถ„์„, ํ˜น์€ ์ธ๊ตฌํ†ต๊ณ„ํ•™/ ๊ธฐ์ˆ ์  ์ง€ํ‘œ๋กœ ์ง‘๋‹จ์„ ๋‚˜๋ˆ  ๋ด„์œผ๋กœ์จ ๋ถ„์„์ด ์›ํ™œํ•œ ๋ฒ”์œ„๊นŒ์ง€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•ด์•ผ ํ•œ๋‹ค.

 

์—ฌ๋Ÿ, ๊ฑฐ์ง“ ๊ฒฝ๋ณด๋ฅผ ์šธ๋ฆฌ๋Š” ์ง€ํ‘œ. ์šฐ๋ฆฌ๋Š” ์–ด๋–ค ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ๋น ๋ฅด๊ฒŒ ์ˆ˜์Šตํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฝ๋ณด ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ฒฝ๋ณด๋ฅผ ์šธ๋ฆฌ๋Š” ๊ธฐ์ค€์ด ์ง€๋‚˜์น˜๊ฒŒ ์˜ˆ๋ฏผํ•ด์„œ ํ•˜๋ฃจ ์›ฌ์ข…์ผ ์šธ๋ ค ๋Œ„๋‹ค๋ฉด ๊ฒฐ๊ตญ ์šฐ๋ฆฌ๋Š” ๊ทธ ๊ฒฝ๋ณด๋ฅผ ๋ฌด์‹œํ•˜๊ฒŒ ๋  ๊ฒƒ์ด๋‹ค.

 

์•„ํ™‰, ์ง์ ‘ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ธ์ •ํ•˜๋Š” ๋ฐฐํƒ€์  ํƒœ๋„. "์—ฌ๋Ÿฌ๋ถ„์˜ ๋ฐ์ดํ„ฐ์™€ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์ˆ˜์ง‘ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•ฉ์น˜๋ฉด ๋งค์šฐ ์†Œ์ค‘ํ•œ ์ •๋ณด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค." ๋ชจ๋‹ˆ์นด๋Š” ๋งํ•œ๋‹ค. "์ตœ๊ณ ์˜ ๊ณ ๊ฐ๋“ค์ด ์Šค์‹œ ์‹๋‹น์ด ๋ฐ€์ง‘๋œ ์ง€์—ญ์— ์ฃผ๋กœ ์‚ด๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?" ๊ทธ๋ ‡๋‹ค๋ฉด ์ด๋กœ๋ถ€ํ„ฐ ๋‹ค์Œ์— ์–ด๋–ค ์‹คํ—˜์„ ์‹ค์‹œํ• ์ง€ ์ข‹์€ ์•„์ด๋””์–ด๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ์•„๋‹ˆ๋ฉด, ์ „๋žต ์ž์ฒด๋ฅผ ์งœ๋Š” ๋ฐ ์˜ํ–ฅ์„ ์ค„ ์ˆ˜๋„ ์žˆ๊ณ .

 

์—ด, ์žก์Œ์— ์ดˆ์ ์„ ๋‘๋Š” ๊ฒƒ. "์ธ๊ฐ„์˜ ์†์„ฑ์€ ํŒจํ„ด์ด ์—†๋Š”๋ฐ๋„ ํŒจํ„ด์„ ๋ฐœ๊ฒฌํ•˜๊ฒŒ ๋ผ ์žˆ์Šต๋‹ˆ๋‹ค." ๋ชจ๋‹ˆ์นด๋Š” ๊ฒฝ๊ณ ํ•œ๋‹ค. "ํ—ˆ์ƒ ์ง€ํ‘œ๋Š” ๋ฌด์‹œํ•˜๊ณ  ํ•œ ๋ฐœ ๋ฌผ๋Ÿฌ์„œ์„œ ๋” ํฐ ๊ทธ๋ฆผ์„ ๋ณผ ์ค„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค."

๋”๋ณด๊ธฐ
BUILD-UP/Framework

 

 

 

<

 

ํ•ด๋‹น ํฌ์ŠคํŠธ๋Š” ๋ฐ์ดํ„ฐ๋ฆฌ์•ˆ์˜ RFM ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” ๋ถ„์„์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”, RFM ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” ๋ถ„์„์—์„œ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๊ธฐ์ค€์„ ์žก๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด๋ฅผ ์ฝ๊ณ  ์ž‘์„ฑํ•œ ๊ธ€์ด๋‹ค. >

RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋‹ค

 

๊ธ€์—์„œ๋Š” ์„œ๋‘๋ถ€ํ„ฐ ๋ชป ๋ฐ•์•„ ๋‘”๋‹ค. "RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋‹ค." ๋˜ํ•œ ์‹ค๋ฌด์—์„œ ํ–‰ํ•˜๋Š”, ์„ฑ๊ณผ๋ฅผ ๋‚ด๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋ฐ์ดํ„ฐ ๋ถ„์„ ์—ญ์‹œ ์ธ์‚ฌ์ดํŠธ๋ฅผ ์œ„ํ•œ ๋ถ„์„์ด ์•„๋‹ˆ๋ผ๊ณ  ๋ง๋ถ™์ธ๋‹ค.

 

๋‹ค์‹œ ๋งํ•˜๋ฉด, ์•„๋ฌด ๋ฐ์ดํ„ฐ๋‚˜ ๋„ฃ์œผ๋ฉด ๊ธฐ๊น”๋‚˜๋Š” ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋ฝ‘์•„ ์ฃผ๋Š” ์–ด๋ฆฐ์™•์ž์˜ ์ƒ์ž ๊ฐ™์€ ๋ถ„์„ ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๊ฟˆ ์†์—์„œ๋‚˜ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฑฐ๊ณ , ์–ด๋–ค ๊ฐ€๊ณต ๊ณผ์ •์„ ๊ฑฐ์น˜๋“  ๊ฐ„์— ๋ฐ์ดํ„ฐ ๋ถ„์„์€ ๋‚˜์˜ ์•Ž์—์„œ ํ”Œ๋Ÿฌ์Šค ๋งˆ์ด๋„ˆ์Šค ๋ช‡ ํผ์„ผํŠธ ํ•œ ๊ฐ’์—์„œ ๊ฒฐ๊ณผ๋ฌผ์„ ์ถœ๋ ฅํ•ด์ค„ ์˜ˆ์ •์ด๋ผ๋Š” ๊ฑฐ๋‹ค. ๋‚˜์˜๊ฒŒ ๋งํ•˜๋ฉด ๋ฝ‘๊ธฐ ํ™•๋ฅ  ๋‚ฎ๋‹ค๋Š” ๊ฑฐ๊ณ  ์ข‹๊ฒŒ ๋งํ•˜๋ฉด ๋‚ด๊ฐ€ ๋†“์นœ ์š”ํ–‰์ด ์—†๋‹จ ์†Œ๋ฆฌ๊ฒ ๋‹ค. ์˜คํžˆ๋ ค ์ข‹๋‹ค.

 

์œ„์—์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด, RFM ๋ถ„์„์€ ์ธ์‚ฌ์ดํŠธ๋ฅผ ๋ฐœ๊ตดํ•ด๋‚ด๋Š” ๊ฒƒ๋ณด๋‹ค๋Š” ์ดํ›„์— ์ง‘ํ–‰ํ•  ์•ก์…˜ ์•„์ดํ…œ์— ๋งž์ถฐ ์œ ์˜๋ฏธํ•œ ๊ณ ๊ฐ ์ง‘๋‹จ์„ ๋ฐœ๊ตดํ•ด๋‚ด๋Š” ๋ฐ ๊ทธ ๋ชฉ์ ์ด ์žˆ๋‹ค. ์ข€ ๋” ์ ํ™•ํ•˜๊ฒŒ ๋งํ•˜๋ฉด ์ผ๋ถ€ ์ง‘๋‹จ์—๋งŒ ์„ ํƒ์ ์œผ๋กœ ๋ˆ์„ ์“ฐ๊ฒ ๋‹จ ๊ฑฐ๋‹ค. (๊ณ ๊ฐ๋“ค์ด ์ถ”์ฒœ์„ ๋น™์žํ•œ ๊ด‘๊ณ ์— ์—ผ์ฆ์„ ๋А๋ผ๋Š” ์‹œ๋Œ€๋‹ค. ๋‹ค๋งŒ ์ถฉ๋ถ„ํžˆ ๊ฐœ์ธ์˜ ํŠน์„ฑ์„ ๋ฐ˜์˜ํ•ด ์ž‘์„ฑ๋œ ํ‘ธ์‹œ๋Š” ๋ฆฌํ…์…˜๊ณผ ๋งค์ถœ์— ์—ฌ์ „ํžˆ ์œ ์˜๋ฏธํ•˜๋‹ค.)

 

 

 

 

์ด์ฒ˜๋Ÿผ ๋’ค์— ์ด์–ด์ง„ 'ํ›„์† ์•ก์…˜'์— ์ดˆ์ ์„ ๋‘”๋‹ค๋Š” ๊ฒƒ์ด RFM ๋ถ„์„์˜ ํŠน์ง•์ด๋‹ค. ์ด๋Š” ๋ฆฌ์†Œ์Šค๊ฐ€ ํˆฌ์—ฌ๋˜๋Š” ์ž‘์—…์ด๊ณ  ๋ณด๋‹ค ์‹ ์ค‘ํžˆ ์„ค๊ณ„ํ•ด์•ผ ํ•œ๋‹ค. ์„ฌ์„ธํ•œ ์ •์˜ ์—†์ด ์ธ์› ์ˆ˜๋Œ€๋กœ ์—ด๋งž์ถฐ ์ž๋ฅธ ๋ถ„์„์— ๋ฆฌ์†Œ์Šค๋ฅผ ํˆฌ์—ฌํ•  ์ˆ˜๋Š” ์—†์ง€ ์•Š๊ฒ ๋Š”๊ฐ€. ๋ณด๊ณ ๋ฅผ ์œ„ํ•œ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ณด๋‹ค ์˜๋ฏธ์žˆ๋Š” ์ˆซ์ž๋ฅผ ์บ๋‚ด๋ ค๋ฉด ์„œ๋น„์Šค/ ๋„๋ฉ”์ธ ํŒŒ์ดํ”„๋ผ์ธ์— ๊ทผ๊ฑฐํ•œ ๋งž๋Š” '์–ผ๋งˆ๋‚˜'๋ฅผ ๋””์ž์ธํ•ด์•ผ ํ•œ๋‹ค. 

 

'์–ผ๋งˆ๋‚˜'๋ฅผ ๊ฐ€๋Š ํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ ค์šด ์ผ์ด๋‹ค. ํŒ๋‹จ์„ ๋‚ด๋ฆฌ๋Š” ์ผ์ด๋ผ์„œ ์—ฌ๋Ÿฌ ์ง€ํ‘œ๊ฐ€ ์—ฎ์—ฌ๋“ค ์ˆ˜๋ฐ–์— ์—†๋‹ค. ์ด๋ฅผ ํ…Œ๋ฉด, Recency๋ฅผ ์ œ๋Œ€๋กœ ์ •ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์šฐ๋ฆฌ ๊ณ ๊ฐ์˜ ์„œ๋น„์Šค ๊ตฌ๋งค ์ฃผ๊ธฐ๋ฅผ ๋จผ์ € ํŒŒ์•…ํ•ด์•ผ ํ•œ๋‹ค. ์‹ํ’ˆ ์ปค๋จธ์Šค์™€ ์˜๋ฅ˜ ์ปค๋จธ์Šค์˜ ๊ตฌ๋งค ์ฃผ๊ธฐ๊ฐ€ ๊ฐ™์„ ์ˆ˜๋Š” ์—†๋‹ค. ํ‰๊ท  ๊ตฌ๋งค ์ฃผ๊ธฐ๊ฐ€ ์ •ํ•ด์ง„๋‹ค๋ฉด ์šฐ๋ฆฌ ์„œ๋น„์Šค์˜ 'ํ™œ์„ฑ ์‚ฌ์šฉ์ž' ๊ทธ๋ฆฌ๊ณ  '์ดํƒˆ ์‚ฌ์šฉ์ž' ์—ญ์‹œ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค. "์ธก์ •ํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๊ด€๋ฆฌํ•  ์ˆ˜ ์—†๋‹ค"๊ณ  ํ”ผํ„ฐ ๋“œ๋Ÿฌ์ปค๋Š” ๋งํ–ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ธก์ •๋œ๋‹ค๋ฉด ๊ด€๋ฆฌํ•  ์ˆ˜๋„ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

๊ธ€์—์„œ ์ ๋“ฏ์ด, ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ๋‚ด ์†์— ์ฅ์–ด์ง„ ๋„๊ตฌ์— ๋ถˆ๊ณผํ•˜๋‹ค. ๊ทธ๋ณด๋‹ค ๋ถ„์„์—์„œ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์ด ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๋‚ด๊ฐ€ ์ด๋ฃจ๊ณ ์ž ํ•˜๋Š” ๋ชฉ์ ์ด๋‹ค. ํฌํŠธํด๋ฆฌ์˜ค๋ฅผ ๋จธ๋ฆฌ ์ฅ์–ด ๋œฏ์œผ๋ฉฐ ์งœ๊ณ  ์žˆ์„ ๋ฏธ๋ž˜์˜ ๋‚˜์—๊ฒŒ ์“ด๋‹ค. ๋„ค๊ฐ€ ๋งŒ๋“  ๊ทธ๊ฒƒ์€ ๋ชฉ์ ์ด ์žˆ๋Š” ๋ถ„์„์ธ๊ฐ€. ์žˆ๋‹ค๋ฉด ์„œ๋น„์Šค์˜ ๋ฐฉํ–ฅ์„ฑ์— ์ถฉ๋ถ„ํ•œ ๋ชฉ์ ์ด์—ˆ๋‚˜. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋ชฉ์ ์„ ์ถฉ๋ถ„ํžˆ ๋‹ฌ์„ฑํ•œ ๋ถ„์„์ด์—ˆ๋‚˜. ์žŠ์„ ๋•Œ์ฏค ํ•œ ๋ฒˆ์”ฉ ๋Œ์•„ ๋ณด๊ธธ ๋ฐ”๋ž€๋‹ค. 

 

 

 

 

์ฐธ๊ณ 

 

RFM ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” ๋ถ„์„์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”

RFM ๊ณ ๊ฐ ์„ธ๋ถ„ํ™” ๋ถ„์„์—์„œ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ๊ธฐ์ค€์„ ์žก๋Š” ๋ฐฉ๋ฒ•

ํ‘ธ์‹œ ํด๋ฆญ๋ฅ  6๋ฐฐ๋ฅผ ๋งŒ๋“  ๊ณ ๊ฐ์ง‘์ค‘

๋”๋ณด๊ธฐ
BUILD-UP/Framework

 

 

 

 

 

์™œ NULL์€ =์ด ์•„๋‹ˆ๋ผ is๋ฅผ ์“ธ๊นŒ

 

SQL ๋ฌธ๋ฒ•์„ ์ฒ˜์Œ ๋ฐฐ์šธ ๋•Œ, ๊ผญ ๋ฐฐ์šฐ๋Š” ๊ฒƒ์ด ์žˆ๋‹ค. 'NULL์„ ์ฐพ์„ ๋•Œ๋Š” = NULL์ด ์•„๋‹ˆ๋ผ IS NULL์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค'. ์˜์•„ํ•˜๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” (๋…ผ๋ฆฌ ์—ฐ์‚ฐ์—์„œ) NULL์„ 0๊ณผ ๊ฐ™์ด ์ทจ๊ธ‰ํ•˜์ง€ ์•Š๋Š”๊ฐ€. SQL์—๋Š” ์–ด๋–ค ์ฐจ์ด์ ์ด ์žˆ๊ธธ๋ž˜ ์ด์ฒ˜๋Ÿผ ํŠน๋ณ„ํ•˜๊ฒŒ NULL์„ ๋‹ค๋ฃฐ๊นŒ. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—๋Š” SQL์‹ NULL์˜ ์ •์˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋ฉด์„œ ์œ„ ์˜๋ฌธ์— ๋Œ€ํ•ด ํŒŒํ—ค์ณ ๋ณธ๋‹ค.

 

 

0๊ณผ NULL์€ ์–ด๋–ค ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๊ฑธ๊นŒ.

 

 

 

๋ฐ์ดํ„ฐ๊ฐ€ '์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’' ๊ทธ๋ž˜์„œ '์•„์ง ๋ชจ๋ฅด๋Š” ๊ฐ’'

 

SQL์—์„œ์˜ NULL์€ ์œ„ํ‚ค๋ฐฑ๊ณผ ๊ธฐ์ค€์œผ๋กœ ์ด๋ ‡๊ฒŒ ์ •์˜๋œ๋‹ค. 'Null ๋˜๋Š” NULL์€ ๊ตฌ์กฐ์  ์งˆ์˜์–ธ์–ด(SQL)์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์ง€์‹œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ํŠน๋ณ„ํ•œ ํ‘œ์‹œ์–ด(Special marker)'. 

 

์ด์ฒ˜๋Ÿผ NULL์€ '์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’'์ด๋‹ค. 0๋„ ์•„๋‹ˆ๊ณ  STRING๋„ ์•„๋‹ˆ๊ณ  ๋‹ค๋ฅธ ์–ด๋А ํƒ€์ž…๋„ ์•„๋‹Œ ๊ทธ๋ƒฅ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๊ฐ’์ด ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์‚ฌ์‹ค์„ ๋”ฐ๋กœ ๋นผ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฑด ๊ต‰์žฅํžˆ ์ค‘์š”ํ•œ ์˜๋ฏธ๋ฅผ ๊ฐ€์ง„๋‹ค.

 

NULL์€ '์กด์žฌํ•˜์ง€ ์•Š๋Š”' ๊ฐ’์ด๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, Primary Key๋ฅผ ์„ค์ •ํ•œ๋‹ค๊ณ  ํ•˜์ž. PK๋Š” NOTNULL, NULL ๊ฐ’์ด์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค. SQL์—์„œ๋Š” PK์— NULL์ด ๋“ค์–ด์˜ค๋ฉด ์˜ค๋ฅ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ์ด๋กœ์จ ์˜๋ฏธ ์—†๋Š” ๋กœ์šฐ๋ฅผ ์‚ฌ์ „์— ๊ฑธ๋Ÿฌ ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋‹ค๋ฅธ ์ปฌ๋Ÿผ์˜ ๊ฒฝ์šฐ์—๋„ NULL์˜ ํ™œ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 'NULL'์ด๋ผ๋Š” '์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’'์ด ์ด๋ฏธ ์กด์žฌํ•˜๋‹ˆ '0'์ด๋‚˜ '9999' ์ฒ˜๋Ÿผ ์˜๋ฏธ ์—†๋Š” ์ˆ˜๋กœ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๊ฐ’์„ ์žฌ์ •์˜ํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค. ์ด์ฒ˜๋Ÿผ SQL์€ NULL์„ ์ฒดํฌํ•จ์œผ๋กœ์จ SQL๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž์ฒด์˜ ์ •ํ•ฉ์„ฑ์„ ํ™•๊ณ ํžˆ ํ•˜๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

NULL์˜ ํŠน์„ฑ

 

์œ„์ฒ˜๋Ÿผ SQL์˜ NULL์€ ํƒ€ ์–ธ์–ด์™€ ๋‹ค๋ฅธ ํ˜•ํƒœ๋กœ ์ •์˜๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—ฐ์‚ฐ๋„ ์กฐ๊ธˆ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์ด๋ค„์ง„๋‹ค. ์•„๋ž˜์—์„œ ์ง์ ‘ ์˜ˆ์‹œ์™€ ํ•จ๊ป˜ ๋ณด๋ฉด์„œ NULL์˜ ํŠน์„ฑ์„ ์•Œ์•„๋ณด์ž.

 

 

A
NULL
1

 

 

 

1) ์‚ฌ์น™์—ฐ์‚ฐ

 

์œ„์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์ด ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ฒซ ๋ฒˆ์งธ ๋กœ์šฐ๋Š” NULL์ด๊ณ  ๋‘ ๋ฒˆ์งธ ๋กœ์šฐ๋Š” ์ •์ˆ˜๋‹ค. ์ด ํ…Œ์ด๋ธ”์— ์‚ฌ์น™์—ฐ์‚ฐ์„ ์ ์šฉํ•˜๋ฉด: 

 

SELECT A + 5, A - 5, A * 5, A / 5 FROM nullcheck;

 

A + 5 A - 5 A * 5 A / 5
NULL NULL NULL NULL
6 -4 5 0.2

 

 

๋„ค ์—ฐ์‚ฐ ๋ชจ๋‘ ๋™์ผํ•˜๊ฒŒ NULL ๊ฐ’์ด ์ถœ๋ ฅ๋˜๋Š” ๊ฑธ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋ฅด๋Š” ๊ฐ’์— ์ˆซ์ž๋ฅผ ๋”ํ•˜๊ณ  ๋นผ ๋ด์•ผ ์—ฌ์ „ํžˆ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’์ธ ๊ฒƒ์ด๋‹ค. 

 

 

 

2) ๋น„๊ต์—ฐ์‚ฐ

 

์ด๋ฒˆ์—๋Š” ๋น„๊ต์—ฐ์‚ฐ์„ ์ง„ํ–‰ํ•ด ๋ณด์ž. ์•„๋ž˜์™€ ๊ฐ™์€ ํ…Œ์ด๋ธ”์— ๋น„๊ต์—ฐ์‚ฐ์„ ์ ์šฉํ•˜๋ฉด:

 

A B
1 2
1 NULL
NULL NULL

 

A = B, A > B, A < B๋ฅผ ๊ฐ๊ฐ ์ ์šฉํ–ˆ์„ ๋•Œ A < B์—์„œ ๋‘˜ ๋‹ค ์ •์ˆ˜์ธ ๋กœ์šฐ๊ฐ€ ์ถœ๋ ฅ๋˜๋Š” ๊ฒƒ ์™ธ์— ๋‚˜์˜ค๋Š” ๊ฒŒ ์—†๋‹ค. ๋ˆˆ์—ฌ๊ฒจ๋ณผ ์ ์€ 1๊ณผ NULL๋ฟ ์•„๋‹ˆ๋ผ  NULL๊ณผ NULL๋ผ๋ฆฌ๋„ ์•ˆ ๋๋‹ค๋Š” ์ ์ด๋‹ค. SQL์—์„œ NULL ๊ฐ’์€ '์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’' ์ด๋ฏ€๋กœ ์•Œ ์ˆ˜ ์—†๋Š” ๊ฐ’ ์‚ฌ์ด์˜ ๋น„๊ต๋Š” ๋ถˆ๊ฐ€ํ•˜๋‹ค.

 

 

 

3) ์ง‘๊ณ„ํ•จ์ˆ˜

 

์ด๋ฒˆ์—” ์ง‘๊ณ„ํ•จ์ˆ˜๋‹ค. ์•„๋ž˜ ํ…Œ์ด๋ธ”์— ์ง‘๊ณ„ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•ด ๋ณด๋ฉด:

 

์ฃผ๋ฌธ๋ฒˆํ˜ธ ๊ตฌ๋งค๊ธˆ์•ก
10001 10000
10002 7000
10003 NULL
10004 2000

 

SELECT COUNT(*), COUNT(๊ตฌ๋งค๊ธˆ์•ก), SUM(๊ตฌ๋งค๊ธˆ์•ก), AVG(๊ตฌ๋งค๊ธˆ์•ก), MAX(๊ตฌ๋งค๊ธˆ์•ก), MIN(๊ตฌ๋งค๊ธˆ์•ก)
FROM zipge;

 

COUNT(*) COUNT(๊ตฌ๋งค๊ธˆ์•ก) SUM(๊ตฌ๋งค๊ธˆ์•ก) AVG(๊ตฌ๋งค๊ธˆ์•ก) MAX(๊ตฌ๋งค๊ธˆ์•ก) MIN(๊ตฌ๋งค๊ธˆ์•ก)
4 3 19000 6333.3333 10000 2000

 

์‚ฌ์น™์—ฐ์‚ฐ์—์„œ์ฒ˜๋Ÿผ ์ถœ๋ ฅ์ด ์•„์˜ˆ ์•ˆ ๋˜๋Š” ๊ฒŒ ์•„๋‹ˆ๋ผ NULL๊ฐ’์„ ์ž๋™์œผ๋กœ ๋นผ๊ณ  ์ด์™ธ์˜ ๊ฐ’์„ ์—ฐ์‚ฐํ•ด ์ค€๋‹ค. ๋‹ค๋งŒ, COUNT์™€ AVG๋Š” ์ฃผ์˜ํ•  ํ•„์š”๊ฐ€ ์žˆ์–ด ๋ณด์ธ๋‹ค. ์ƒ๊ธฐ ์ฟผ๋ฆฌ์—์„œ COUNT(*)์™€ COUNT(๊ตฌ๋งค๊ธˆ์•ก)์€ ์„œ๋กœ ๋‹ค๋ฅธ ๊ฐ’์„ ๋ฆฌํ„ดํ–ˆ๋‹ค. ์ฃผ๋ฌธ๋ฒˆํ˜ธ 10003์€ ์ฃผ๋ฌธ๊ธˆ์•ก์ด NULL์ด์ง€๋งŒ ์ฃผ๋ฌธ๋ฒˆํ˜ธ๊ฐ€ ๋“ค์–ด๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ COUNT(*)์—์„œ๋Š” ๊ฐ’์œผ๋กœ ์ง‘๊ณ„๋œ ๊ฒƒ์ด๋‹ค. AVG์˜ ๊ฒฝ์šฐ์—๋Š” ์ „์ฒด ๊ตฌ๋งค์•ก์ธ 19000์„ ํ•ด๋‹น ์ปฌ๋Ÿผ์—์„œ NULL์ด ์•„๋‹Œ ๋กœ์šฐ์ธ 3์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’์œผ๋กœ ์ถœ๋ ฅ๋๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ SUM(๊ตฌ๋งค๊ธˆ์•ก) / COUNT(*)์™€๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋‹ต์„ ์ถœ๋ ฅํ•˜๊ฒŒ ๋๋‹ค.

 

 

 

 

NULL์„ TRUE ์•„๋‹ˆ๋ฉด FALSE๋กœ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์ผํ•œ ๋ฐฉ๋ฒ•

 

์ด์ฒ˜๋Ÿผ SQL์€ NULL์„ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ ์œ„ํ•ด ๊ธฐ์กด ์–ธ์–ด์—์„œ ์‚ฌ์šฉ๋˜๋˜ TRUE, FALSE๋กœ ์ด๋ฃจ์–ด์ง„ 2๊ฐ’ ๋…ผ๋ฆฌ์— NULL์„ ์ถ”๊ฐ€ํ•œ 3๊ฐ€ ๋…ผ๋ฆฌ(Three-valued logic)๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

 

์ด์ œ ์šฐ๋ฆฌ๋Š” ์ฒ˜์Œ์˜ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ๋‹ค. "์™œ NULL์€ =์ด ์•„๋‹ˆ๋ผ is๋ฅผ ์จ์•ผ ํ• ๊นŒ."

 

๋‹ต๋ณ€์€ ์ด์ฏค ๋˜๊ฒ ๋‹ค. NULL์€ TRUE๋‚˜ FALSE๋กœ ์„ค๋ช…๋  ์ˆ˜ ์—†๋Š” ์ œ 3์˜ ๊ฐ’์ด๋‹ค. ๊ทธ๋ž˜์„œ NULL์€ ๋น„๊ต์—ฐ์‚ฐ๋  ์ˆ˜ ์—†๋‹ค. ๋ง ๊ทธ๋Œ€๋กœ ๋ชจ๋ฅด๋Š” ๊ฐ’์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ๊ทธ๋ž˜์„œ SQL์€ 'NULL์„ TRUE๋‚˜ FALSE ๋‘ ๊ฐ€์ง€๋กœ ๋น„๊ต์—ฐ์‚ฐํ•  ์ˆ˜ ์žˆ๋Š”' ๋ฌธ๋ฒ•์„ ๋งŒ๋“ค์—ˆ๊ณ  ์ด๊ฒŒ IS NULL๊ณผ IS NOT NULL์ด์—ˆ์„ ๊ฒƒ์ด๋‹ค.

 

NULL๋„ ๋น„๊ต์—ฐ์‚ฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. SQL์—์„œ๋Š”.

 

 

 

 

์ฐธ๊ณ 

 

1) https://khdscor.tistory.com/53

2) https://yoongaemii.github.io/null_in_sql/

3) https://velog.io/@minnim1010/SQL-NULL-%EC%9D%B4-%EC%95%84%EB%8B%8C-IS-NULL%EC%9D%B8-%EC%9D%B4%EC%9C%A0-9irf8u7o

 

 

 

 

 

๋”๋ณด๊ธฐ
TOOLS/SQL