๐Ÿงฑ SQL

๋ฐฐ์†ก ์˜ˆ์ •์ผ ์˜ˆ์ธก ์„ฑ๊ณต๊ณผ ์‹คํŒจ -- ์ตœ์ข…SELECT strftime('%Y-%m-%d', order_purchase_timestamp) as "purchase_date", SUM(CASE WHEN order_estimated_delivery_date >= order_delivered_customer_date THEN 1 ELSE 0 END) as "success", SUM(CASE WHEN order_estimated_delivery_date    # ์ ‘๊ทผ ๋ฐฉ์‹ 1. success์™€ fail ์ผ€์ด์Šค๋ฅผ ๊ฐœ๋ณ„ ์ปฌ๋Ÿผ์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ๊ฒ ๋‹ค.2. SUM (ํ˜น์€ COUNT๋„ ์ƒ๊ด€์—†์Œ) ์ง‘๊ณ„ ํ›„ ์ผ์ž๋ณ„ ๊ทธ๋ฃนํ™”ํ•ด์•ผ๊ฒ ๋‹ค.3. ๊ธฐํƒ€ ์กฐ๊ฑด๋“ค ์ถฉ์กฑ e.g., 17๋…„ 1์›” ๋ฐ์ดํ„ฐ๋งŒ, ๋‚ ์งœ ์˜ค๋ฆ„์ฐจ์ˆœ   # ๋ฐฐ์šด์  1. SQLite..
1๏ธโƒฃ ์„œ๋ธŒ์ฟผ๋ฆฌ (Subquery) SQL ๊ตฌ๋ฌธ ๋‚ด์— ํฌํ•จ๋œ ์ฟผ๋ฆฌ, (๋ฉ”์ธ)์ฟผ๋ฆฌ ์† ์ฟผ๋ฆฌ โœ… ๋ชฉ์  ๋ฐ์ดํ„ฐ ํ•„ํ„ฐ๋ง ๋ณต์žกํ•œ ์ง‘๊ณ„ JOIN โœ… ์œ„์น˜ SELECT ๋ฌธ FROM ์ ˆ WHERE ์ ˆ HAVING ์ ˆ ORDER BY ์ ˆ โœ… ์œ ํ˜• ๋ฉ”์ธ ์ฟผ๋ฆฌ์™€์˜ ์—ฐ๊ด€์„ฑ - ๋น„์ƒ๊ด€ ์„œ๋ธŒ์ฟผ๋ฆฌ ์•„๋ฌด๊ฒƒ๋„ ์ฐธ์กฐํ•˜์ง€ ์•Š๊ณ , ์—ฐ๊ณ„๋˜์ง€ ์•Š๊ณ , ๋‹จ๋…์œผ๋กœ ์‹คํ–‰๋˜๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ ๋ฉ”์ธ ํ…Œ์ด๋ธ”๊ณผ ์กฐ์ธ ์กฐ๊ฑด์ด ๊ฑธ๋ฆฌ์ง€ ์•Š๋Š” ์„œ๋ธŒ์ฟผ๋ฆฌ ์—ฐ์‚ฐ์ž(=, , , =) + [ all / any / in ] ์‚ฌ์šฉํ•œ ์กฐ๊ฑด ๋ถ€์—ฌ ๊ฐ€๋Šฅ -- ๋น„์ƒ๊ด€ ์„œ๋ธŒ์ฟผ๋ฆฌ -- (์˜ˆ์‹œ) ์ธ๋„(India)์— ์—†๋Š” ๋ชจ๋“  ๋„์‹œ๋ฅผ ๋ฐ˜ํ™˜ SELECT city_id, city_name FROM city WHERE country_id (SELECT country_id FROM country WHER..
1๏ธโƒฃ ๋ทฐ (View) DB์—์„œ ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ๋ถ€ํ„ฐ ํŒŒ์ƒ๋œ ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ํ…Œ์ด๋ธ”๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š์Œ ex. ํ…Œ์ด๋ธ”์„ ๋น„๊ณต๊ฐœ๋กœ ์œ ์ง€ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ๋ทฐ ์ง‘ํ•ฉ์„ ํ†ตํ•ด์„œ๋งŒ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๋„๋ก DB ์„ค๊ณ„ 2๏ธโƒฃ ํŠน์ง• ๊ฐ€์ƒ ํ…Œ์ด๋ธ” ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์Œ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ทฐ๋ฅผ ํ†ตํ•ด ์ •์˜ํ•œ ์ฟผ๋ฆฌ๋Š” ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๋ทฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํŠน์ • ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋…ธ์ถœ ๊ฐ€๋Šฅ ๋ฐ์ดํ„ฐ ์ง‘๊ณ„ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์ „ ์ง‘๊ณ„ํ•˜์—ฌ DB์— ์ €์žฅํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์—ฌ์คŒ์œผ๋กœ์„œ ์„ค๊ณ„์˜ ์œ ์—ฐ์„ฑ ํ–ฅ์ƒ ๋‹จ์ˆœํ™” ๋ณต์žกํ•œ ์ฟผ๋ฆฌ๋ฅผ ๋ทฐ๋กœ ์ •์˜ํ•˜์—ฌ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งŒ๋“ฆ 3๏ธโƒฃ ๊ตฌ์กฐ -- ๋ทฐ ๊ตฌ์กฐ CREATE VIEW view_name AS SELECT col1, col2, … FROM table; -- ๋ทฐ ์˜ˆ์‹œ CREATE VIEW EmailVie..
๋Œ€์—ฌ ํšŸ์ˆ˜๊ฐ€ ๋งŽ์€ ์ž๋™์ฐจ๋“ค์˜ ์›”๋ณ„ ๋Œ€์—ฌ ํšŸ์ˆ˜ ๊ตฌํ•˜๊ธฐ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”. programmers.co.kr #์ตœ์ข… SELECT MONTH(START_DATE), CAR_ID, COUNT(CAR_ID) RECORDS FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE CAR_ID IN ( SELECT CAR_ID FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY WHERE YEAR(START_DATE)=2022 AND MONTH(START_DATE) IN (8, 9, 10) GROUP BY CAR_ID HAVING C..
1๏ธโƒฃ INSERT ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ/์‚ฝ์ž…ํ•˜๋Š” ๋ช…๋ น์–ด โœ… ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์ปฌ๋Ÿผ ๋ฆฌ์ŠคํŠธ ๋ช…์‹œํ•˜๊ธฐ ์–ด๋–ค ์ปฌ๋Ÿผ์— ๊ฐ’์„ ๋„ฃ์„์ง€ ๋ช…์‹œ ์ปฌ๋Ÿผ ์ˆœ์„œ์— ๋งž๊ฒŒ ์ž‘์„ฑ ์ปฌ๋Ÿผ ๋ฆฌ์ŠคํŠธ ๋ช…์‹œํ•˜์ง€ ์•Š๊ธฐ ๋ชจ๋“  ์ปฌ๋Ÿผ์— ๊ฐ’์„ ๋„ฃ์„ ๊ฒƒ์ด๋ผ๋Š” ์˜๋ฏธ ํ…Œ์ด๋ธ”์—์„œ ์ •์˜๋œ ์ปฌ๋Ÿผ ๊ฐœ์ˆ˜์— ๋งž์ถฐ ์ˆœ์„œ๋Œ€๋กœ ๊ฐ’์„ ์ž…๋ ฅ โœ… ๊ตฌ์กฐ -- โ‘  ์ปฌ๋Ÿผ ๋ฆฌ์ŠคํŠธ ๋ช…์‹œ INSERT INTO table1 (col1, col2, …) VALUES (val1, val2, …) -- โ‘  ์˜ˆ์‹œ INSERT INTO player (name, height, weight) VALUES ('KIM', 170, 65) -- โ‘ก ์ปฌ๋Ÿผ ๋ฆฌ์ŠคํŠธ ๋ช…์‹œ X INSERT INTO table1 VALUES (val1, val2, …) -- โ‘ก ์˜ˆ์‹œ INSERT INTO player VALUES (..
ํ–‰ํŒฝ
'๐Ÿงฑ SQL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก