<์ค๋์ ํ์ต>
- SQL ๋ผ์ด๋ธ ์ธ์ 6ํ์ฐจ
- SQL ๋ฐ์ผ๋ฆฌ ํ์คํธ
- SQL ์ฝ๋์นดํ / ๋ ๋ฒจ1 / 1๋ฒ~10๋ฒ
https://tjsdud7032.tistory.com/36
[SQL ์ฝ๋์นดํ] ๋ ๋ฒจ 1 / 1~10
1. ์ด๋ฆ ์๋ ๋๋ฌผ์ ID๋ฌธ์ ๋งํฌ:๋ฌธ์ ๋งํฌhttps://school.programmers.co.kr/learn/courses/30/lessons/59407์ ๋ต ์ฝ๋SELECT ANIMAL_IDFROM ANIMAL_INSWHERE NAME is not nullORDER BY ANIMAL_ID;2. ์ญ์ ์ ๋ ฌํ๊ธฐ๋ฌธ์ ๋งํฌhttps://school.pr
tjsdud7032.tistory.com
- ์ํฐํด; ๋ฐ์ดํฐ ๋ถ์๊ฐ๊ฐ ๊ฐ์ถฐ์ผ ํ 9๊ฐ์ง ์ญ๋
https://tjsdud7032.tistory.com/35
[์ํฐํด] ๋ฐ์ดํฐ ๋ถ์๊ฐ๊ฐ ๊ฐ์ถฐ์ผ ํ 9๊ฐ์ง ์ญ๋
https://yozm.wishket.com/magazine/detail/2070/ ๋ฐ์ดํฐ ๋ถ์๊ฐ๊ฐ ๊ฐ์ถฐ์ผ ํ 9๊ฐ์ง ์ญ๋ | ์์ฆIT์ต๊ทผ ๋ ธ์ฝ๋ ํด, ๋ฐ์ดํฐ ํ๋ซํผ, ChatGPT ๋ฑ์ด ๋ฑ์ฅํ๋ฉด์ ๋ฐ์ดํฐ ๋ถ์๊ฐ์๊ฒ ์๊ตฌ๋๋ ์ญ๋๋ ๋ณํํ๊ณ ์์ต๋
tjsdud7032.tistory.com
<ํ์ต๋ด์ฉ ์ ๋ฆฌ>
# SQL ๋ผ์ด๋ธ ์ธ์ 6ํ์ฐจ
1. IFNULL (expr1, expr2)
: expr1์ด NULL์ด๋ฉด expr2๋ฅผ ๋ฐํ
expr1์ด NULL์ด ์๋๋ฉด expr1 ๊ทธ๋๋ก ๋ฐํ
2. COALESCE(val1, val2, val3, ...)
: val์ ์์ฐจ์ ์ผ๋ก ์ค์บํ๊ณ , NULL์ด ์๋ ๋งจ ์ฒ์ ๊ฐ์ ๋ฐํ
๐ก IFNULL vs COALESCE
- 2๊ฐ ์ค ํ๋๋ง ๊ณ ๋ฅด๋ฉด: **COALESCE ์ถ์ฒ(ํ์ค + ์ฌ๋ฌ ํ๋ณด ๊ฐ๋ฅ)
- ๋ฑ “NULL์ด๋ฉด ์ด๊ฒ”๋ง ํ์ํ๋ฉด: **IFNULL๋ ๊น๋ํจ
โ๋ฏธ๋์ค์ต 0)
๋ฌธ์ : students์์ `region`์ด NULL์ด๋ฉด `'UNKNOWN'`์ผ๋ก ๋ณด์ด๊ฒ ํด๋ณด์ธ์.
์ถ๋ ฅ: `student_id, student_name, region_clean`
-- ifnull ํ์ฉ
SELECT student_id
, student_name
, ifnull(region, 'UNKNOWN') as region_clean
FROM basic.students;
-- coalesce ํ์ฉ
SELECT student_id
, student_name
, coalesce(region, 'UNKNOWN') as region_clean
FROM basic.students;
<์๋์ฐ ํจ์>
- MySQL์์๋ ์๋์ฐ ํจ์๋ SELECT ๋ฆฌ์คํธ/ORDER BY์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ
= WHERE, GROUP BY, HAVING์์๋ ์ง์ ๋ชป ์ - from์ ์๋ ์๋ณธ ํ ์ด๋ธ(ํ)์ ์ ์งํ๊ณ , partition by ๊ธฐ์ค์ผ๋ก ์ง๊ณํ์ฌ ์๋ก์ด ์ปฌ๋ผ ๋ถ์ด๊ธฐ
๐ก์๋์ฐ ํจ์ vs Group by
- ์๋์ฐ ํจ์๋ ํ์ด ์ค์ด๋ค์ง ์์.
- ์ง๊ณ๊ฐ ๋ชฉ์ ์ด๋ฉด GROUP BY, ์๋ณธ ํ + ๋งฅ๋ฝ(์ง๊ณ๊ฐ) ์ ์ง๊ฐ ๋ชฉ์ ์ด๋ฉด WINDOW๊ฐ ์ด๋
ํจ์(...) OVER (
PARTITION BY ...
ORDER BY ...)
3. COUNT / SUM / AVG + ์๋์ฐ ํจ์
โ ๋ฏธ๋์ค์ต 1)
๋ฌธ์ : enrollments์์ ๊ฐ ํ๋ง๋ค
- `enrollment_id`
- `student_id`
- `course_id`
- `student_enroll_cnt` (ํ์ ๊ธฐ์ค ์ ์ฒญ ๊ฑด์)
- `course_enroll_cnt` (๊ฐ์ข ๊ธฐ์ค ์ ์ฒญ ๊ฑด์)
๋ฅผ ๊ฐ์ด ๋ถ์ด์ธ์.
SELECT enrollment_id
, student_id
, course_id
, COUNT(enrollment_id) over(PARTITION BY student_id) AS student_enroll_cnt
, COUNT(enrollment_id) OVER(PARTITION BY course_id) AS course_enroll_cnt
FROM basic.enrollments;
4. ๊ทธ๋ฃน๋ณ ์๋ฒ/์์ (ROW_NUMBER / RANK / DENSE_RANK)
4-1) ROW_NUMBER ()
๋ฌด์กฐ๊ฑด 1, 2, 3... / ๋์ ๋ ์ ๋ ฌ ๊ธฐ์ค์ผ๋ก ๋๋ ์ง
- ORDER BY๊ฐ ์์ผ๋ฉด ๊ฒฐ๊ณผ๊ฐ ๋น๊ฒฐ์ ์ (๋งค๋ฒ ๋ฌ๋ผ์ง ์ ์์)
- ํ์๋ณ ์ ์ฒญ์ ๋ ์ง์์ผ๋ก “๋ช ๋ฒ์งธ ์ ์ฒญ์ธ์ง"
4-2) RANK()
๋ค์ ์์ ๊ฑด๋๋ / ๋์ ์ฒ๋ฆฌ
4-3) DENSE_RANK()
๋ค์ ์์ ์ ๊ฑด๋๋ / ๋์ ์ฒ๋ฆฌ
โ ๋ฏธ๋์ค์ต 2)
-- ๐์ค๋ต
WITH ranked AS (
SELECT course_id, enrollment_id
, ROW_NUMBER() OVER(
PARTITION BY course_id
ORDER BY final_price DESC) AS rn
FROM basic.enrollments e
)
SELECT course_id, enrollment_id, student_id, final_price -- CTE ์์์ ์ถ๋ ฅ๋์ง ์์ select ๋ฆฌ์คํธ๋ ๋ฐ ์ฟผ๋ฆฌ์์๋ ๋ถ๋ฌ์์ง์ง ์๋๋ค.!
FROM ranked
WHERE rn IN (1, 2);
-- ๐กํด์ค
WITH ranked AS (
SELECT course_id
, final_price
, enrollment_id
, student_id
, ROW_NUMBER() OVER(
PARTITION BY course_id
ORDER BY final_price DESC) AS rn
FROM basic.enrollments e
)
SELECT course_id, enrollment_id, student_id, final_price
FROM ranked
WHERE rn IN (1, 2);
<์ค๋ต๋ ธํธ>
CTE ์์ ์๋ SELECT ๋ฆฌ์คํธ ์์ ์๋ ์ปฌ๋ผ์,
๋ฐ๊นฅ ์ฟผ๋ฆฌ์์๋ ๋ถ๋ฌ์์ง์ง ์๋๋ค.
5 . “๋์ ํฉ/๋น์จ/์ต๊ทผ N๊ฐ ํ๊ท ” (SUM/AVG OVER + ORDER BY + Frame)
5-1) ๋์ ํฉ
- ๋์ ํฉ์ ROWS ํ๋ ์์ ๋ช
์ํด๋ผ
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
= “๊ทธ๋ฃน์ ์ฒซ ํ ~ ํ์ฌ ํ๊น์ง ๋์ ”
โ๋ฏธ๋์ค์ต 3)
-- ์ ๋ต
SELECT payment_id
, paid_at
, amount
, SUM(amount) OVER(
ORDER BY paid_at
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) AS cum_amount
FROM basic.payments
WHERE payment_status='paid'
5-2) ๋น์จ
Q. ์ด ์ ์ฒญ ๊ธ์ก์ด ํ์ ์ด ์ง์ถ์ ๋ช %์ธ๊ฐ?
SELECT
enrollment_id,
student_id,
final_price,
SUM(final_price) OVER (PARTITION BY student_id) AS student_total,
ROUND(final_price / SUM(final_price) OVER (PARTITION BY student_id) * 100,1
) AS pct_of_student_total
FROM basic.enrollments
ORDER BY student_id, enrollment_id;
6. “์ด์ /๋ค์ ํ ๋น๊ต” (LAG / LEAD) + NULL ์ฒ๋ฆฌ(IFNULL/COALESCE)
- `N` ๊ธฐ๋ณธ๊ฐ = `1` (ํ ์นธ ์ /ํ)
- `default` ์์ ๋ ๋์ฒ ๊ฐ(๊ธฐ๋ณธ๊ฐ = `NULL`)
- `ORDER BY`๋ ์ฌ์ค์ ํ์(“์ /ํ” ๊ธฐ์ค์ด ํ์)
LAG(expr, N, default) OVER (PARTITION BY ... ORDER BY ...)
LEAD(expr, N, default) OVER (PARTITION BY ... ORDER BY ...)
Q. ํ์๋ณ “์ด์ ์ ์ฒญ ๊ธ์ก” + “์ฐจ์ด”
(1) ์ด์ ๊ฐ(prev_price)๋ง ๋จผ์ ๋ถ์ด๊ธฐ
(2) “์ฐจ์ด(diff)”๊น์ง ๋ง๋ค๊ธฐ (NULL ์ฒ๋ฆฌ ํฌํจ)
WITH w AS (
SELECT
enrollment_id,
student_id,
enroll_date,
final_price,
LAG(final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date, enrollment_id
) AS prev_price
FROM basic.enrollments
)
SELECT
enrollment_id,
student_id,
enroll_date,
final_price,
prev_price,
final_price - COALESCE(prev_price, final_price) AS diff_from_prev
FROM w
ORDER BY student_id, enroll_date, enrollment_id;
- ์ฌ๋ฌ ๊ฐ๋ ์ฌ์ฉ ๊ฐ๋ฅ
SELECT
enrollment_id,
student_id,
enroll_date,
final_price,
LAG(final_price, 1, final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date, enrollment_id
) AS prev_price,
final_price
- LAG(final_price, 1, final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date, enrollment_id
) AS diff_from_prev
FROM basic.enrollments
ORDER BY student_id, enroll_date, enrollment_id;
- ์๋์ฐ ํจ์๊ฐ ์ฌ๋ฌ ๊ฐ ์์ผ๋ฉด ๋ณด๊ธฐ ๋ณต์ก!
์ฌ๋ฌ ๊ฐ์ ์๋์ฐ ํจ์์ ์กฐ๊ฑด์ด ๊ฐ์ผ๋ฉด window ์กฐ๊ฑด์ด๋ฆ as () ๋ก ํ๋ฒ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ
SELECT
enrollment_id,
student_id,
enroll_date,
final_price,
LAG(final_price, 1, final_price) OVER w AS prev_price,
LEAD(final_price, 1, final_price) OVER w AS next_price
FROM basic.enrollments
WINDOW w AS (
PARTITION BY student_id
ORDER BY enroll_date, enrollment_id
)
ORDER BY student_id, enroll_date, enrollment_id;
โ ๋ฏธ๋์ค์ต 4)
๋ฌธ์
`basic.enrollments`์์ **ํ์๋ณ(student_id)**๋ก ์ ์ฒญ์ ์๊ฐ์์ผ๋ก ์ ๋ ฌํ์ ๋, ๊ฐ ์ ์ฒญ ํ์ ์๋ ์ปฌ๋ผ์ ๋ง๋ค์ด ์ถ๋ ฅํ์ธ์.
์ ๋ ฌ ๊ธฐ์ค(์ค ์ธ์ฐ๊ธฐ ๊ธฐ์ค):
- `enroll_date` ์ค๋ฆ์ฐจ์
- ๊ฐ์ ๋ ์ง๋ฉด `enrollment_id` ์ค๋ฆ์ฐจ์
์ถ๋ ฅ ์ปฌ๋ผ:
- `enrollment_id, student_id, enroll_date, final_price`
- `prev_price` : ๋ฐ๋ก **์ด์ ์ ์ฒญ**์ `final_price`
- ์ด์ ์ ์ฒญ์ด ์์ผ๋ฉด(์ฒซ ํ) → **ํ์ฌ๊ฐ(final_price)** ์ผ๋ก ๋์ฒด
- `next_price` : ๋ฐ๋ก **๋ค์ ์ ์ฒญ**์ `final_price`
- ๋ค์ ์ ์ฒญ์ด ์์ผ๋ฉด(๋ง์ง๋ง ํ) → **ํ์ฌ๊ฐ(final_price)** ์ผ๋ก ๋์ฒด
- `diff_from_prev` : `final_price - prev_price` (์ฒซ ํ์ 0์ด ๋๊ฒ)
- `diff_to_next` : `next_price - final_price` (๋ง์ง๋ง ํ์ 0์ด ๋๊ฒ)
ํํธ:
- `LAG(final_price)` / `LEAD(final_price)`๋ ๊ธฐ๋ณธ์ ์ผ๋ก “ํ ์นธ ์ /ํ”๋ฅผ ๋ณด๋ฉฐ, ๊ฐ์ด ์์ผ๋ฉด NULL์ด ๋์ต๋๋ค.
- NULL์ `COALESCE(x, final_price)`๋ก ํ์ฌ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ฃผ์ธ์.
-- ๋์ ๋ต
SELECT enrollment_id
, student_id
, enroll_date
, final_price
, LAG(final_price,1, final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date
) AS prev_price
, LEAD(final_price, 1, final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date
) AS next_price
, final_price
- LAG(final_price,1, final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date
) AS diff_from_prev
, LEAD(final_price, 1, final_price) OVER (
PARTITION BY student_id
ORDER BY enroll_date
) - final_price AS diff_to_next
FROM basic.enrollments
ORDER BY student_id, enroll_date, enrollment_id
-- WINDOW ๋ณ์นญ ์ฌ์ฉ
SELECT enrollment_id
, student_id
, enroll_date
, final_price
, LAG(final_price,1, final_price) OVER w AS prev_price
, LEAD(final_price, 1, final_price) OVER w AS next_price
, final_price
- LAG(final_price,1, final_price) OVER w AS diff_from_prev
, LEAD(final_price, 1, final_price) OVER w - final_price AS diff_to_next
FROM basic.enrollments
-- WINDOW ์กฐ๊ฑด
WINDOW w AS (
PARTITION BY student_id
ORDER BY enroll_date
)
ORDER BY student_id, enroll_date, enrollment_id;
-- CTE ํ์ฉ
WITH win AS (
SELECT enrollment_id
, student_id
, enroll_date
, final_price
, LAG(final_price, 1, final_price) OVER(
PARTITION BY student_id
ORDER BY enroll_date)
AS prev_price
, LEAD(final_price, 1, final_price) OVER(
PARTITION BY student_id
ORDER BY enroll_date)
AS next_price
FROM basic.enrollments
ORDER BY student_id
)
SELECT enrollment_id
, student_id
, enroll_date
, final_price
, prev_price
, next_price
, final_price - prev_price AS diff_from_prev
, next_price - final_price AS diff_to_next
FROM win
ORDER BY student_id, enroll_date, enrollment_id;
# SQL ๋ฐ์ผ๋ฆฌ ํ์คํธ
# ๊ณผ์
๊ณผ์ 1)
์ํฉ
์ด์ํ์ด ์ ์ฒญ ๋ด์ญ์ ๋ณผ ๋,
- ํ์ `region`์ด ๋น์ด์์ผ๋ฉด `"UNKNOWN"`์ผ๋ก ๋ณด์ด๊ณ
- `coupon_code`๊ฐ ๋น์ด์์ผ๋ฉด `"no_coupon"`์ผ๋ก ๋ณด์ด๊ธธ ์ํฉ๋๋ค.
๋ชฉํ
`enrollment_status IN ('active','completed')`์ธ ์ ์ฒญ๋ง ๋์์ผ๋ก ์๋๋ฅผ ์ถ๋ ฅํ์ธ์.
์ถ๋ ฅ ์ปฌ๋ผ
- `enrollment_id`
- `student_id`
- `student_name`
- `region_clean` : `COALESCE(s.region, 'UNKNOWN')`
- `coupon_label` : `IFNULL(e.coupon_code, 'no_coupon')`
์ ๋ ฌ
- `enrollment_id` ์ค๋ฆ์ฐจ์
SELECT e.enrollment_id
, e.student_id
, s.student_name
, COALESCE(s.region,'UNKNOWN') AS region_clean
, IFNULL(e.coupon_code, 'no_coupon') AS coupon_label
FROM basic.enrollments e
LEFT JOIN basic.students s
ON e.student_id=s.student_id
WHERE e.enrollment_status IN ('active','completed')
ORDER BY enrollment_id;
๊ณผ์ 2)
์ํฉ
๋ถ์ํ์ด enrollments(์ ์ฒญ 1๊ฑด=1ํ)๋ฅผ ์ ์งํ ์ฑ๋ก, ํ์๋ณ ํต๊ณ๋ฅผ “์์ ๋ถ์ฌ์” ๋ณด๊ณ ์ถ์ดํฉ๋๋ค.
๋ชฉํ
enrollments์์ ๊ฐ ํ๋ง๋ค ์๋ ์ปฌ๋ผ์ ๋ถ์ฌ ์ถ๋ ฅํ์ธ์.
์ถ๋ ฅ ์ปฌ๋ผ
- `enrollment_id`
- `student_id`
- `final_price`
- `student_enroll_cnt` : ํ์ ๊ธฐ์ค ์ ์ฒญ ๊ฑด์
- `student_total_spend` : ํ์ ๊ธฐ์ค ์ด ๊ฒฐ์ (์ ์ฒญ๊ธ์ก ํฉ)
- `student_avg_price` : ํ์ ๊ธฐ์ค ํ๊ท ์ ์ฒญ๊ธ์ก
์ ๋ ฌ
- `student_id`, `enrollment_id` ์ค๋ฆ์ฐจ์
SELECT enrollment_id
, student_id
, final_price
, COUNT(*) OVER(PARTITION BY student_id) AS student_enroll_cnt
, SUM(final_price) OVER(PARTITION BY student_id) AS student_total_spend
, AVG(final_price) OVER(PARTITION BY student_id) AS student_avg_price
FROM basic.enrollments
ORDER BY student_id, enrollment_id;
๊ณผ์ 3)
์ํฉ
๋ง์ผํ
ํ์ด ํ์๋ณ๋ก “๊ฐ์ฅ ๊ณ ๊ฐ ๊ฐ์ข ์ ์ฒญ 1๊ฑด”๋ง ๋ฝ์ VIP ์๋ด๋ฅผ ๋ณด๋ด๋ ค ํฉ๋๋ค.
๋ชฉํ
`enrollment_status IN ('active','completed')`๋ง ๋์์ผ๋ก,
ํ์๋ณ๋ก `final_price`๊ฐ ๊ฐ์ฅ ํฐ ์ ์ฒญ 1๊ฑด๋ง ๋จ๊ธฐ์ธ์.
> ๋์ ์ด๋ฉด enrollment_id๊ฐ ๋ ์์ ๊ฒ์ 1๊ฑด์ผ๋ก ์ ํํ์ธ์.
์ถ๋ ฅ ์ปฌ๋ผ
- `student_id`
- `enrollment_id`
- `final_price`
์ ๋ ฌ
- `student_id` ์ค๋ฆ์ฐจ์
WITH ranked AS (
SELECT student_id
, enrollment_id
, final_price
, ROW_NUMBER() OVER(
PARTITION BY student_id
ORDER BY final_price desc
) AS rnk
FROM basic.enrollments
WHERE enrollment_status IN ('active','completed')
)
SELECT student_id
, enrollment_id
, final_price
FROM ranked
WHERE rnk=1
ORDER BY student_id;
๊ณผ์ 4)
์ํฉ
์ฌ๋ฌดํ์ด paid ๊ฒฐ์ ๋ก๊ทธ๋ฅผ ์๊ฐ์์ผ๋ก ๋ณด๋ฉด์,
- ๋ฐ๋ก ์ด์ ๊ฒฐ์ ๊ธ์ก
- ์ด์ ๋๋น ์ฆ๊ฐ
- ์ง๊ธ๊น์ง ๋์ ๊ฒฐ์ ์ก
์ ํ ๋ฒ์ ๋ณด๊ณ ์ถ์ดํฉ๋๋ค.
๋ชฉํ
`payment_status='paid'`์ธ ๊ฒฐ์ ๋ง ๋์์ผ๋ก ์๋๋ฅผ ์ถ๋ ฅํ์ธ์.
์ถ๋ ฅ ์ปฌ๋ผ
- `payment_id`
- `paid_at`
- `amount`
- `prev_amount` : ์ด์ ๊ฒฐ์ ์ amount (์์ผ๋ฉด 0)
- `diff_from_prev` : `amount - prev_amount`
- `cum_amount` : ์๊ฐ์ ๋์ ๊ฒฐ์ ์ก
์ ๋ ฌ
- `paid_at`, `payment_id` ์ค๋ฆ์ฐจ์
SELECT payment_id
, paid_at
, amount
, LAG(amount, 1, 0) OVER(
ORDER BY paid_at
) AS prev_amount
, amount
- LAG(amount, 1, 0) OVER(
ORDER BY paid_at
) AS diff_from_prev
, SUM(amount) OVER(
ORDER BY paid_at, payment_id -- paid_at์ ์ค๋ณต์ด ์์ ์๋ ์์. ์ ๋ ฌ๊ธฐ์ค id๋ก ํ๋ ๋ ์ถ๊ฐ.
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW -- ๋์ ํฉ์๋ ์ด ์กฐ๊ฑด์ ๊ผญ ์ ๊ธฐ
) AS cum_amount
FROM basic.payments
WHERE payment_status='paid'
ORDER BY paid_at, payment_id;
# ํด์ฆ
Q1. MySQL์์ ์๋์ฐ ํจ์ ์ฌ์ฉ ์์น๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
A. WHERE ์ ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
B. GROUP BY ์ ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
C. SELECT ๋ฆฌ์คํธ์ ORDER BY ์ ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
D. JOIN ON ์ ์์๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
Q2. `LAG(expr, N, default)`์ ๋ํ ์ค๋ช
์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
A. N์ ๊ธฐ๋ณธ๊ฐ์ 0์ด๋ค
B. ์ด์ ํ์ด ์์ผ๋ฉด default๋ฅผ ๋ฐํํ๋ค
C. default์ ๊ธฐ๋ณธ๊ฐ์ 0์ด๋ค
D. ORDER BY ์์ด๋ ํญ์ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋ณด์ฅ๋๋ค
Q3. `COALESCE(a, b, c)`์ ๋ํ ์ค๋ช
์ผ๋ก ์ฌ๋ฐ๋ฅธ ๊ฒ์?
A. ์ธ ๊ฐ์ด ๋ชจ๋ NULL์ด๋ฉด 0์ ๋ฐํํ๋ค
B. ์ฒซ ๋ฒ์งธ ์ธ์๋ง ๊ฒ์ฌํ๊ณ NULL์ด๋ฉด ํญ์ b๋ฅผ ๋ฐํํ๋ค
C. ์ผ์ชฝ๋ถํฐ ๋ณด๋ฉด์ **์ฒ์์ผ๋ก NULL์ด ์๋ ๊ฐ**์ ๋ฐํํ๋ค
D. NULL์ ๊ฒ์ฌํ ์ ์๋ ํจ์๋ค
Q4. `ROW_NUMBER()`์ `RANK()`์ ์ฐจ์ด๋ก ๊ฐ์ฅ ์ฌ๋ฐ๋ฅธ ๊ฒ์?
A. ๋ ๋ค ๋์ ์ด๋ฉด ๊ฐ์ ์์๋ฅผ ์ค๋ค
B. ROW_NUMBER๋ ๋์ ์ด์ด๋ ์๋ก ๋ค๋ฅธ ๋ฒํธ๋ฅผ ์ค๋ค
C. RANK๋ ORDER BY ์์ด๋ ํญ์ ์์ ์ ์ด๋ค
D. ROW_NUMBER๋ GROUP BY๊ฐ ์์ด์ผ๋ง ์ฌ์ฉ ๊ฐ๋ฅํ๋ค
Q5. ์๋ ๋์ ํฉ ๋ฌธ๋ฒ์์ `ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW`์ ์๋ฏธ๋ก ๊ฐ์ฅ ์ฌ๋ฐ๋ฅธ ๊ฒ์?
A. ํ์ฌ ํ ํ ์ค๋ง ํฉ์ฐํ๋ค
B. ํํฐ์
์ ๋ง์ง๋ง ํ๋ถํฐ ํ์ฌ ํ๊น์ง ํฉ์ฐํ๋ค
C. ํํฐ์
์ ์ฒซ ํ๋ถํฐ ํ์ฌ ํ๊น์ง ๋์ ํฉ์ฐํ๋ค
D. ํํฐ์
์ ์ฒด(๋ชจ๋ ํ)๋ฅผ ํญ์ ํฉ์ฐํ๋ค
# ์๊ธฐ์ฃผ๋ํ์ต์ ์ํ AIํ์ฉ๋ฒ 2ํ์ฐจ
# AI ํ์ฉํ์ฌ ํ์ด์ฌ ํ์ต์๋ฃ ๋ง๋ค๊ธฐ
- ๋ณธ๋ฌธ ๋ด์ฉ์, ๋๋ณด๋ค ๋ ๋ชจ๋ฅด๋ ์ฌ๋์๊ฒ ์ค๋ช ํ ์ ์์ ์ ๋๋ก ์์งํด์ผ ํ๋ค.
- ์ถ๊ฐํ๋ฉด ์ข์ ๋งํฌ, ์ด๋ฏธ์ง ๋ฑ์ ์ฒจ๋ถ, ์์ฑ๋ ๋ชจ๋ ์์ , ๋ฌธ์ ์ ์ค์ต ํ๋ฉด์ ์บก์ณํด์ ์ฒจ๋ถํ๋ค.
- ์ฑํฐ๋ณ๋ก ๊ฐ๊ฐ ์์ฑํ ๋งํฌ๋ฅผ ์ ์ฒด ๋ชฉ๋ก ๊ธ์ ๋งํฌ ์ฒจ๋ถํ๋ค.
- ์ด๊ธฐ ํ๋กฌํํธ (ํ์ต์๋ฃ ์ ์ฒด ๋ชฉ์ฐจ ์์ฑ)
- AI์ ์ญํ ๊ณผ ๋์ ์ญํ ์ ์ ๋ฆฝ
- ํ๊ณ ์ ํ๋ ๊ฒ์ ๋ชฉํ
- ํ์ต์๋ฃ์ ์ปค๋ฆฌํ๋ผ: ์ฑ ๋งํฌ์ ๋ชฉ์ฐจ ๋ฃ๊ธฐ
๋๋ ์ค๊ณ ๋ฑํ์์๊ฒ ์ฝ๋ฉ ๊ต์ก์ ์ฝ๊ฒ ์ํ๋ ์ผํ ๊ฐ์ฌ์ผ.
๋๋ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์ ํ ์๋ ํ์ต์์ผ. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ผ์ด๋ธ์ปค๋จธ์ค PD๋ก ์ผ ํ ์ ์ด ์์์ด.
ํ์ด์ฌ ํ๋ก๊ทธ๋๋ฐ/๋ฐ์ดํฐ ๋ถ์ ๊ด๋ จ ๊ฐ์ข๋ฅผ ๋ธ๋ก๊ทธ์ ์๋ฆฌ์ฆ๋ก ์์ฑํ๊ณ ์ถ์ด.
๋์ด๋๋ ์คํ๊ต 3ํ๋
์ ๋๋ ์ดํดํ๊ณ ์ค์ต ๊ฐ๋ฅํ ์์ค์ด์์ผ๋ฉด ์ข๊ฒ ์ด.
๋ฐ์ดํฐ ๋ถ์ ๊ด์ ์์ ์ค์ํ ๋ด์ฉ์ ๋ ๊ฐ์กฐํด์ค.
์ด ๊ฐ์์์ ๋ค ํ์ตํ๊ณ ๋๋ฉด ํต๊ณํ์ด๋ ๋จธ์ ๋ฌ๋ ์์ผ๋ก ํ์ต์ ์ด์ด์ ํ ๊ฑฐ๋ผ ๊ทธ ๋ด์ฉ์ ๋นผ๋ ๋จ.
์๋ ํฌํจํ๊ณ ์ถ์ ๋ด์ฉ์ ์ ๋ฆฌํ๋๋ฐ ์ด 21๊ฐ ์ฑํฐ๋ก ์ ๋ฆฌํด์ค.
๊ฐ ์ฑํฐ ์ ๋ชฉ ๋ฐ ํ์ต ๋ชฉํ ๊ทธ๋ฆฌ๊ณ ๊ทธ ๋ด์ฉ์ ๊ฐ๋ตํ๊ฒ ์์ฝํด์ค.
๊ฐ๋ฐํ๊ฒฝ์ google colab์ ์ฌ์ฉํ๊ณ ์ถ์ด.
https://www.yes24.com/product/goods/102485981
Chapter 01 ํ์ด์ฌ ๋น๊ธด์ฆ
01 ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋?
02 ํ์ด์ฌ์ด๋?
03 ํ์ด์ฌ ์ค์นํ๊ณ ์คํํ๊ธฐ
04 ํ์ด์ฌ IDLE ํ์ฉํ๊ธฐ
Chapter 02 ๋ณ์
01 ๋ณ์๋?
02 ๋ณ์ ์ด๋ฆ ์ง๊ธฐ
03 ๊ฐ์ ์
๋ ฅ๋ฐ๋ input() ํจ์
[์ค์ ์์ ] ๊ฑฐ๋ถ์ด๊ฐ ๋์ค๋ ํ๋ก๊ทธ๋จ
Chapter 03 ์ฐ์ฐ์
01 ์ฐ์ ์ฐ์ฐ์
02 ๋์
์ฐ์ฐ์
03 ๋น๊ต ์ฐ์ฐ์์ ๋
ผ๋ฆฌ ์ฐ์ฐ์
04 ์ฐ์ฐ์์ ์ฐ์ ์์
[์ค์ ์์ ] ๊ฑฐ๋ถ์ด๋ฅผ ๊ทธ๋ฆฌ๋ ํ์ ๋ณํ
[์ค์ ์์ ] ์
๋ ฅํ ๊ฐ๋งํผ ๊ฑฐ๋ถ์ด ์์ง์ด๊ธฐ
Chapter 04 ๋ฐ์ดํฐํ๊ณผ ๋ฌธ์์ด
01 ๋ฐ์ดํฐํ์ด๋?
02 ๋ฐ์ดํฐํ์ ์ข
๋ฅ
03 ๋ฌธ์์ด ์์๋ณด๊ธฐ
[์ค์ ์์ ] ๋ชจํ์ ๋ ๋๋ ๊ฑฐ๋ถ์ด
Chapter 05 ์กฐ๊ฑด๋ฌธ
01 ์กฐ๊ฑด๋ฌธ์ ๊ธฐ์ด ๋ค์ง๊ธฐ
02 ์กฐ๊ฑด๋ฌธ ์์๋ณด๊ธฐ
[์ค์ ์์ ] ์ฌ์ถ๊ธฐ ๊ฑฐ๋ถ์ด๋ฅผ ์ง๋ํ๊ธฐ
Chapter 06 ๋ฐ๋ณต๋ฌธ
01 for๋ฌธ ๊ธฐ์ด ๋ค์ง๊ธฐ
02 for๋ฌธ ํ์ฉํ๊ธฐ
03 while๋ฌธ์ด๋?
[์ค์ ์์ ] ๊ฑฐ๋ถ์ด ๋ฌด๋ฌ์ ๋ฒฝ์ง ๋ง๋ค๊ธฐ
Chapter07 ๋ฆฌ์คํธ, ํํ, ๋์
๋๋ฆฌ
01 ๋ฆฌ์คํธ ๊ธฐ์ด
02 ๋ฆฌ์คํธ ํ์ฉํ๊ธฐ
03 ํํ
04 ๋์
๋๋ฆฌ
[์ค์ ์์ ] 100๋ง๋ฆฌ์ ๊ฑฐ๋ถ์ด ์ผ
Chapter 08 ํจ์๋ฅผ ์ด์ฉํ ๊ณ ๊ธ ํ๋ก๊ทธ๋๋ฐ
01 ํจ์ ์ดํดํ๊ธฐ
02 ํจ์์ ๋งค๊ฐ๋ณ์๋ฅผ ์ ๋ฌํ๊ณ ๊ฐ ๋ฐํํ๊ธฐ
03 ์ง์ญ๋ณ์์ ์ ์ญ๋ณ์
[์ค์ ์์ ] ํ๋ฏผ์ ์ ๊ทธ๋ํฝ ๋์์ธ
Chapter09 ํ์ผ ์ฝ๊ธฐ์ ์ฐ๊ธฐ
01 ํ์ผ์ ์ฌ์ฉํ๋ ์ด์
02 ํ์ผ ์ฝ๊ธฐ
03 ํ์ผ ์ฐ๊ธฐ
[์ค์ ์์ ] ๊ฐ๋ ๊ธธ์ ๋ณต์ตํ๋ ๊ฑฐ๋ถ์ด
Chapter 10 ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ
01 ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ดํดํ๊ธฐ
02 ํด๋์ค์ ๊ฐ์ฒด
03 ์์ฑ์์ ํน๋ณํ ๋ฉ์๋
04 ํด๋์ค์ ์์
[์ค์ ์์ ] GPS๋ฅผ ๋จ ํ ๋ผ
https://www.yes24.com/product/goods/116253011
Chapter 01 ๋ฐ์ดํฐ ๋ถ์์ ์์ํ๋ฉฐ
01-1 ๋ฐ์ดํฐ ๋ถ์์ด๋
__๋ฐ์ดํฐ ๋ถ์๊ณผ ๋ฐ์ดํฐ ๊ณผํ
__๋ฐ์ดํฐ ๋ถ์๊ฐ
__๋ฐ์ดํฐ ๋ถ์์ ์ํ ๋๊ตฌ
[์ข ๋ ์์๋ณด๊ธฐ] ๋ฐ์ดํฐ ๋ง์ด๋๊ณผ ๋จธ์ ๋ฌ๋
[3๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ์ต์ ๊ผญ ํ์ํ ํต์ฌ ํจํค์ง]
[ํ์ธ ๋ฌธ์ ]
01-2 ๊ตฌ๊ธ ์ฝ๋ฉ๊ณผ ์ฃผํผํฐ ๋
ธํธ๋ถ
__๊ตฌ๊ธ ์ฝ๋ฉ
__๋
ธํธ๋ถ
[์ข ๋ ์์๋ณด๊ธฐ] ๋งํฌ๋ค์ด ์์
[5๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํ
์คํธ ์
ํด๋ฐ]
[ํ์ธ ๋ฌธ์ ]
01-3 ์ด ๋์๊ฐ ์ผ๋ง๋ ์ธ๊ธฐ๊ฐ ์ข์๊น์?
__๋์ ๋ฐ์ดํฐ ์ฐพ๊ธฐ
__์ฝ๋ฉ์์ ๋ฐ์ดํฐ ํ์ธํ๊ธฐ
__ํ์ด์ฌ์ผ๋ก CSV ํ์ผ ์ถ๋ ฅํ๊ธฐ
__๋ฐ์ดํฐํ๋ ์ ๋ค๋ฃจ๊ธฐ: ํ๋ค์ค
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ์ ์ ํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์์ ์
๋ก๋ํ๊ณ ์ฝ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ] ๊ณต๊ฐ ๋ฐ์ดํฐ ์ธํธ ๋ํ ์ฌ์ดํธ์ ์ ๋ช
ํฌ๋ผ
[5๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
Chapter 02 ๋ฐ์ดํฐ ์์งํ๊ธฐ
02-1 API ์ฌ์ฉํ๊ธฐ
__API๋
__ํ์ด์ฌ์์ JSON ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ
__ํ์ด์ฌ์์ XML ๋ฐ์ดํฐ ๋ค๋ฃจ๊ธฐ
__API๋ก 20๋๊ฐ ๊ฐ์ฅ ์ข์ํ๋ ๋์ ์ฐพ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ๊ณต๊ฐ API๋ก ์น์์ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ
[4๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
02-2 ์น ์คํฌ๋ํ ์ฌ์ฉํ๊ธฐ
__๋์ ์ชฝ์๋ฅผ ์ฐพ์์
__๊ฒ์ ๊ฒฐ๊ณผ ํ์ด์ง ๊ฐ์ ธ์ค๊ธฐ
__HTML์์ ๋ฐ์ดํฐ ์ถ์ถํ๊ธฐ: ๋ทฐํฐํ์ํ
__์ ์ฒด ๋์์ ์ชฝ์ ๊ตฌํ๊ธฐ
__์น ์คํฌ๋ํํ ๋ ์ฃผ์ํ ์
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ์น ์คํฌ๋ํ์ผ๋ก HTML ์์งํ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ] merge() ํจ์์ ๋งค๊ฐ๋ณ์
[2๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
Chapter 03 ๋ฐ์ดํฐ ์ ์ ํ๊ธฐ
03-1 ๋ถํ์ํ ๋ฐ์ดํฐ ์ญ์ ํ๊ธฐ
__์ด ์ญ์ ํ๊ธฐ
__ํ ์ญ์ ํ๊ธฐ
__์ค๋ณต๋ ํ ์ฐพ๊ธฐ
__๊ทธ๋ฃน๋ณ๋ก ๋ชจ์ผ๊ธฐ
__์๋ณธ ๋ฐ์ดํฐ ์
๋ฐ์ดํธํ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ์ผ๊ด ์ฒ๋ฆฌ ํจ์ ๋ง๋ค๊ธฐ
[6๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
03-2 ์๋ชป๋ ๋ฐ์ดํฐ ์์ ํ๊ธฐ
__๋ฐ์ดํฐํ๋ ์ ์ ๋ณด ์์ฝ ํ์ธํ๊ธฐ
__๋๋ฝ๋ ๊ฐ ์ฒ๋ฆฌํ๊ธฐ
__์ ๊ท ํํ์
__์๋ชป๋ ๊ฐ ๋ฐ๊พธ๊ธฐ
__๋๋ฝ๋ ์ ๋ณด ์ฑ์ฐ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ๋ฐ์ดํฐ๋ฅผ ์ดํดํ๊ณ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ ํ๊ธฐ
[2๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
Chapter 04 ๋ฐ์ดํฐ ์์ฝํ๊ธฐ
04-1 ํต๊ณ๋ก ์์ฝํ๊ธฐ
__๊ธฐ์ ํต๊ณ ๊ตฌํ๊ธฐ
__ํ๊ท ๊ตฌํ๊ธฐ
__์ค์๊ฐ ๊ตฌํ๊ธฐ
__์ต์๊ฐ, ์ต๋๊ฐ ๊ตฌํ๊ธฐ
__๋ถ์์ ๊ตฌํ๊ธฐ
__๋ถ์ฐ ๊ตฌํ๊ธฐ
__ํ์คํธ์ฐจ ๊ตฌํ๊ธฐ
__์ต๋น๊ฐ ๊ตฌํ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ๋ฐ์ดํฐํ๋ ์์์ ๊ธฐ์ ํต๊ณ ๊ตฌํ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ] ๋ํ์ด์ ๊ธฐ์ ํต๊ณ ํจ์
[6๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
04-2 ๋ถํฌ ์์ฝํ๊ธฐ
__์ฐ์ ๋ ๊ทธ๋ฆฌ๊ธฐ
__ํ์คํ ๊ทธ๋จ ๊ทธ๋ฆฌ๊ธฐ
__์์ ์์ผ ๊ทธ๋ฆผ ๊ทธ๋ฆฌ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ํต๊ณ๋์ ์๊ฐ์ ์ผ๋ก ํํํ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ] ํ๋ค์ค์ ๊ทธ๋ํ ํจ์
[6๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
Chapter 05 ๋ฐ์ดํฐ ์๊ฐํํ๊ธฐ
05-1 ๋งทํ๋กฏ๋ฆฝ ๊ธฐ๋ณธ ์์ ์์๋ณด๊ธฐ
__Figure ๊ฐ์ฒด
__rcParams ๊ฐ์ฒด
__์ฌ๋ฌ ๊ฐ์ ์๋ธํ๋กฏ ์ถ๋ ฅํ๊ธฐ
[5๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
05-2 ์ ๊ทธ๋ํ์ ๋ง๋ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
__์ฐ๋๋ณ ๋ฐํ ๋์ ๊ฐ์ ๊ตฌํ๊ธฐ
__์ฃผ์ ๋ณ ๋์ ๊ฐ์ ๊ตฌํ๊ธฐ
__์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
__๋ง๋ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ๋งทํ๋กฏ๋ฆฝ์ผ๋ก ์ ๊ทธ๋ํ์ ๋ง๋ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ(1)] ์ด๋ฏธ์ง ์ถ๋ ฅํ๊ณ ์ ์ฅํ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ(2)] ๊ทธ๋ํ๋ฅผ ์ด๋ฏธ์ง๋ก ์ ์ฅํ๊ธฐ
[2๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
Chapter 06 ๋ณต์กํ ๋ฐ์ดํฐ ํํํ๊ธฐ
06-1 ๊ฐ์ฒด์งํฅ API๋ก ๊ทธ๋ํ ๊พธ๋ฏธ๊ธฐ
__pyplot ๋ฐฉ์๊ณผ ๊ฐ์ฒด์งํฅ API ๋ฐฉ์
__๊ทธ๋ํ์ ํ๊ธ ์ถ๋ ฅํ๊ธฐ
__์ถํ์ฌ๋ณ ๋ฐํ ๋์ ์ฐ์ ๋ ๊ทธ๋ฆฌ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ๋งทํ๋กฏ๋ฆฝ์ ๋ค์ํ ๊ธฐ๋ฅ์ผ๋ก ๊ทธ๋ํ ๊ฐ์ ํ๊ธฐ
[3๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
06-2 ๋งทํ๋กฏ๋ฆฝ์ ๊ณ ๊ธ ๊ธฐ๋ฅ ๋ฐฐ์ฐ๊ธฐ
__์ค์ต ์ค๋นํ๊ธฐ
__ํ๋์ ํผ๊ฒจ์ ์ฌ๋ฌ ๊ฐ์ ์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
__ํ๋์ ํผ๊ฒจ์ ์ฌ๋ฌ ๊ฐ์ ๋ง๋ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
__์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
__์ฌ๋ฌ ์ข
๋ฅ์ ๊ทธ๋ํ๊ฐ ์๋ ์๋ธํ๋กฏ ๊ทธ๋ฆฌ๊ธฐ
__[๋ฌธ์ ํด๊ฒฐ ๊ณผ์ ] ๋งทํ๋กฏ๋ฆฝ์ผ๋ก ๋ณต์กํ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
[์ข ๋ ์์๋ณด๊ธฐ] ํ๋ค์ค๋ก ์ฌ๋ฌ ๊ฐ์ ๊ทธ๋ํ ๊ทธ๋ฆฌ๊ธฐ
[5๊ฐ์ง ํค์๋๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํฌ์ธํธ]
[ํ๋ก ์ ๋ฆฌํ๋ ํต์ฌ ํจ์์ ๋ฉ์๋]
[ํ์ธ ๋ฌธ์ ]
- ํ์ต์๋ฃ ์ ์ฒด ์ธ๋ค์ผ, ์ ๋ชฉ, ํ๊ทธ ์ ํ๊ธฐ
- ํ๋กฌํํธ: ์ ๋ด์ฉ์ ๋ํ ๋ธ๋ก๊ทธ ์ ๋ชฉ๊ณผ ํ๊ทธ๋ฅผ ๋ง๋ค์ด์ฃผ๊ณ ์ธ๋ค์ผ ์ ์ ๊ฐ์ด๋๋ฅผ ์ ๋ฆฌํด์ค. - ๊ณตํต ํ๋กฌํํธ(๋ชจ๋ ์ฑํฐ ์์ฑ ์ ์ฌ์ฉ)
- AI๋ ์ด์ ๋ด์ฉ์ด ๊ธธ๋ฉด ์ฒ์์ ๋ช ๋ น์ ์์ ์ ์์. ์ค์ํ ๋ด์ฉ์ ๊ณ์ ๋ช ๋ นํ๋ ๊ฒ์ด ์ข์.
-
- ๋๋ ์ค๊ณ ๋ฑํ์์๊ฒ ์ฝ๋ฉ ๊ต์ก์ ์ฝ๊ฒ ์ํ๋ ์ผํ ๊ฐ์ฌ์ผ.
- ๋๋ ํ๋ก๊ทธ๋๋ฐ ๊ฒฝํ์ด ์ ํ ์๋ ํ์ต์์ผ. ๊ทธ๋ฆฌ๊ณ ๋๋ ๋ผ์ด๋ธ์ปค๋จธ์ค PD๋ก ์ผ ํ ์ ์ด ์์์ด.
- ๊ฐ๋ฐํ๊ฒฝ์ google colab์ ์ฌ์ฉํ๊ณ ์ถ์ด.
- ์๋ ๋ด์ฉ์ ๋ํ ์ธ๋ถ ๊ฐ์ข๋ฅผ ๋ง๋ค์ด์ค.
- ์ค์ตํ ๊ฐ์ข(์ด๋ก 40% ์ค์ต 60%)
- ๋ชจ๋ ๋ด์ฉ์ ์ฝ๊ณ , ๊ตฌ์ฒด์ ์ด๊ณ , ๋จ๊ณ๋ณ๋ก ์ด๋ณด์๋ ๋ฐ๋ผํ ์ ์๋๋ก ์์ฑํด์ค.
- ๊ฐ ๊ฐ์ ๋ด์ฉ์ ๋ํด ์ต๋ํ ์์ ๋ฅผ ๋ง์ด ์ถ๊ฐํด์ฃผ๊ณ , ์์ ์ ๋ํ ์ค๋ช
๋ ์ถ๊ฐํด์ค.
- ๋ชจ๋ ์์ ๋ ์๋์ฝ๋๋ฅผ ์์ฑํ๊ณ ์ค๋ช
, ์ค์ ์ฝ๋ ์์ฑ ์ค๋ช
, ์ค์ ๋ก ์ด๋ ํ ์์(Line by Line)๋ก ์คํ๋๋์ง ์ค๋ช
ํด์ค.
- ์์ํ ์ธ์ด(ํนํ ์์ด) ๋๋ฌธ์ ์ด๋ ต์ง ์๋๋ก ํ์ต ์ด๋ฐ์ ํ์ํ ๋จ์ด ์ ๋ฆฌ๋ฅผ ํฌํจํด์ค.
- ์ด์ ์ ๋ฐฐ์ด ๋ด์ฉ ์ค ๋ฆฌ๋ง์ธ๋๊ฐ ํ์ํ ๋ถ๋ถ๋ ์ด๋ฐ์ ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด์ค.
- ๊ฐ์ข ๋์๋ ํ์ต ๋ด์ฉ ์ข
ํฉ ์ค์ต ๊ฐ๋ฅํ ์ค๋ฌดํ ๊ณผ์ ๋ฅผ ์ถ์ ํด์ค.
--------
Chapter 01. ์ฝ๋ฉ๊ณผ ํ์ด์ฌ, ๊ทธ๋ฆฌ๊ณ ๋ฐ์ดํฐ ๋ถ์
ํ์ต ๋ชฉํ
ํ๋ก๊ทธ๋๋ฐ์ด ๋ฌด์์ธ์ง ๊ฐ์ผ๋ก ์ดํดํ๋ค
์ ๋ฐ์ดํฐ ๋ถ์์ ํ์ด์ฌ์ ์ฐ๋์ง ์๊ฒ ๋๋ค
์์ฝ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ “์ปดํจํฐ์๊ฒ ์ผ์ ์ํค๋ ๋ฐฉ๋ฒ”
ํ์ด์ฌ์ด ์ฌ์ด ์ด์ (์ฝ๊ธฐ ์ฌ์ด ๋ฌธ๋ฒ, ๋ฐ์ดํฐ ๋ถ์์ ๊ฐํจ)
๋ฐ์ดํฐ ๋ถ์์ “๊ฐ์ด ์๋๋ผ ๊ทผ๊ฑฐ๋ก ๋งํ๋ ๊ฒ”
๋ผ์ด๋ธ์ปค๋จธ์ค ์์:
๐ “์ค๋ ๋ฐฉ์ก์ด ์ ๋๋์ง”๋ฅผ ์ซ์๋ก ์ค๋ช
ํ๋ ๋ฅ๋ ฅ
--------
- ์ด ์ ๋ด์ฉ์ผ๋ก ํฌ๋ฉํ ์คํ์ผ ๋ธ๋ก๊ทธ ๋ณธ๋ฌธ, ์ ๋ชฉ, ํ๊ทธ, ์ธ๋ค์ผ ์ ์ ๊ฐ์ด๋ ์์ฑํด์ค.
- ์ธ๋ค์ผ ์ ์ ๊ฐ์ด๋๋ ๋ด๊ฐ ์ต์
์ ์ ํํ ์ ์๋๋ก, ๋ชจ๋ ๊ณ ๋ ค ์ฌํญ์ด ๋ค์ด๊ฐ ์ต์
๋ค์ 5๊ฐ ๋ง๋ค์ด์ค.
<์๊ฒ๋ ๊ฒ>
- ํจ์ ๋ด "expr" : expression(ํํ)
'์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ(25.12.01~)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ_๋ณธ์บ ํ_data11๊ธฐ ๊น์ ์_TIL_Day 8 (0) | 2026.01.02 |
|---|---|
| [SQL ์ฝ๋์นดํ] ๋ ๋ฒจ 2 / 11~30 (0) | 2026.01.02 |
| [SQL ์ฝ๋์นดํ] ๋ ๋ฒจ 1 / 1~10 (0) | 2025.12.31 |
| [๊ฐ๋ ์ ๋ฆฌ] ์๋ธ์ฟผ๋ฆฌ(Subquery) (0) | 2025.12.31 |
| ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ_๋ณธ์บ ํ_data11๊ธฐ ๊น์ ์_TIL_Day 6 (2) | 2025.12.30 |