๋ฐ์ดํฐ ์ฌ์ด์ธ์ค 100๋ฒ์ ๋ ธํฌ(๊ตฌ์กฐํ ๋ฐ์ดํฐ ์ฒ๋ฆฌํธ) โ SQL Part 1 (Q1 to Q20)์ ํด์ค์ ๋๋ค.
ย
์ฐธ๊ณ (Reference) : ใ๋ฐ์ดํฐ ์ฌ์ด์ธํฐ์คํธ ํํ ์คํฌ ์ ์ ์์ใ์ ใ๋ฐ์ดํฐ ์ฌ์ด์ธ์ค 100๋ฒ์ ๋ ธํฌ(๊ตฌ์กฐํ ๋ฐ์ดํฐ ์ฒ๋ฆฌํธ)ใ์ ๋๋ค.
ย
์ฒ์์
- ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ PostgreSQL13์ ๋๋ค.
- ๋จผ์ ๋ค์ ์ ์ ์คํํฉ๋๋ค.
- ์ ์ %%sql์ ๋ช ์ํ์ฌ SQL์ ๋ฐํํ ์ ์์ต๋๋ค.
- jupyter์์๋ describe ๋ช ๋ น์ผ๋ก ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ ์ ์์ผ๋ฏ๋ก, ํ ์ด๋ธ ๊ตฌ์กฐ๋ฅผ ํ์ธํ๋ ค๋ฉด limit์ ์ง์ ํ SELECT ๋ฑ์ผ๋ก ๋์ฒดํด ์ฃผ์ธ์.
- ์ต์ํ SQL ํด๋ผ์ด์ธํธ๋ฅผ ์ฌ์ฉํด๋ ๋ฌธ์ ์์ต๋๋ค(์ ์ ์ ๋ณด๋ ์๋์ ๊ฐ์ต๋๋ค).
- IP ์ฃผ์ : Docker Desktop์ ๊ฒฝ์ฐ localhost, Docker toolbox์ ๊ฒฝ์ฐ 192.168.99.100
- Port:5432
- database ์ด๋ฆ: dsdojo_db
- ์ฌ์ฉ์ ์ด๋ฆ: padawan
- ๋น๋ฐ๋ฒํธ:padawan12345
- ๋๋ ์ถ๋ ฅ์ ํ๋ฉด Jupyter๊ฐ ๋ฉ์ถ ์ ์์ผ๋ฏ๋ก ์ถ๋ ฅ ๊ฑด์๋ฅผ ์ ํํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค(์ง๋ฌธ์๋ ์ถ๋ ฅ ๊ฑด์๋ฅผ ๊ธฐ์ฌ).
- ๊ฒฐ๊ณผ ํ์ธ์ ์ํด ํ์ํ๋ ์์ ์ ์ ํ ์กฐ์ ํ์ฌ ์์ ์ ๊ฐ๋ณ๊ฒ ์งํํ ์ ์๋ ๊ธฐ์ ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ์๋ ํ์ํฉ๋๋ค.
- ๋๋์ ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ ๊ฒฝ์ฐ, ํ์ผ์ด ๋ฌด๊ฑฐ์์ ธ ์ดํ ์ด๋ฆฌ์ง ์์ ์ ์์ต๋๋ค.
- ์ด ๊ฒฝ์ฐ, ์์ ๊ฒฐ๊ณผ๋ ์ฌ๋ผ์ง์ง๋ง ํ์ผ์ GitHub์์ ๋ค์ ๋ถ๋ฌ์์ผ ํฉ๋๋ค.
- vim ์๋ํฐ ๋ฑ์ผ๋ก ๋๋ ์ถ๋ ฅ ๋ฒ์๋ฅผ ์ญ์ ํ ์๋ ์์ต๋๋ค.
- ์ด๋ฆ, ์ฃผ์ ๋ฑ์ ๋๋ฏธ ๋ฐ์ดํฐ์ด๋ฉฐ ์ค์ ์กด์ฌํ๋ ๊ฒ์ด ์๋๋๋ค.
%load_ext sql
import os
pgconfig = {
'host': 'db',
'port': os.environ['PG_PORT'],
'database': os.environ['PG_DATABASE'],
'user': os.environ['PG_USER'],
'password': os.environ['PG_PASSWORD'],
}
dsl = 'postgresql://{user}:{password}@{host}:{port}/{database}'.format(**pgconfig)
# Magic ๋ช
๋ น์ด๋ก SQL์ ์์ฑํ๊ธฐ ์ํ ํ๊ฒฝ ์ค์
%sql $dsl
'Connected: padawan@dsdojo_db'
์ฌ์ฉ๋ฒ
์ ์ ๋งจ ์์ %%sql์ ๊ธฐ์ฌํ๊ณ , ๋ ๋ฒ์งธ ์ค ์ดํ์ SQL์ ์์ฑํ๋ฉด Jupyter์์ PostgreSQL์ ๋ํด SQL์ ์คํํ ์ ์์ต๋๋ค.
%%sql
SELECT '๋ค์๊ณผ ๊ฐ์ด ์คํ๋ฉ๋๋ค' AS sample;
* postgresql://padawan:***@db:5432/dsdojo_db 1 rows affected.
sample |
---|
๋ค์๊ณผ ๊ฐ์ด ์คํ๋ฉ๋๋ค |
๋ฐ์ดํฐ ๊ฐ๋ 100๋ฒ ๋ ธํฌ
S-001: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ์ ์ฒด ํญ๋ชฉ ์ค ์ฒซ 10๊ฑด์ ํ์ํ์ฌ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๋ณด์ ํ๊ณ ์๋์ง ๋ชฉ์์ผ๋ก ํ์ธํ๋ผ.
%%sql
SELECT
*
FROM receipt
LIMIT 10
;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
sales_ymd | sales_epoch | store_cd | receipt_no | receipt_sub_no | customer_id | product_cd | quantity | amount |
---|---|---|---|---|---|---|---|---|
20181103 | 1541203200 | S14006 | 112 | 1 | CS006214000001 | P070305012 | 1 | 158 |
20181118 | 1542499200 | S13008 | 1132 | 2 | CS008415000097 | P070701017 | 1 | 81 |
20170712 | 1499817600 | S14028 | 1102 | 1 | CS028414000014 | P060101005 | 1 | 170 |
20190205 | 1549324800 | S14042 | 1132 | 1 | ZZ000000000000 | P050301001 | 1 | 25 |
20180821 | 1534809600 | S14025 | 1102 | 2 | CS025415000050 | P060102007 | 1 | 90 |
20190605 | 1559692800 | S13003 | 1112 | 1 | CS003515000195 | P050102002 | 1 | 138 |
20181205 | 1543968000 | S14024 | 1102 | 2 | CS024514000042 | P080101005 | 1 | 30 |
20190922 | 1569110400 | S14040 | 1102 | 1 | CS040415000178 | P070501004 | 1 | 128 |
20170504 | 1493856000 | S13020 | 1112 | 2 | ZZ000000000000 | P071302010 | 1 | 770 |
20191010 | 1570665600 | S14027 | 1102 | 1 | CS027514000015 | P071101003 | 1 | 680 |
ํด์ค:
์ด ์ฝ๋๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๊ด๋ฆฌํ๊ณ ์กฐ์ํ๊ธฐ ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ธ SQL(Structured Query Language)๋ก ์์ฑ๋์์ต๋๋ค.
์ด ์ฝ๋์์๋ "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ๋ณํ(*) ์์ผ๋์นด๋ ๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ ํ ์ด๋ธ์ ๋ชจ๋ ์ด๊ณผ ํ์ ์ ํํ๊ณ ์๋ค. ์ฟผ๋ฆฌ ๋์ ์๋ "LIMIT 10" ๊ตฌ๋ฌธ์ ๊ฒฐ๊ณผ ์งํฉ์ ํ ์ด๋ธ์ ์ฒ์ 10๊ฐ์ ํ์ผ๋ก ์ ํํ๊ณ ์๋ค.
๊ฐ๋จํ ๋งํด, ์ด ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receipt' ํ ์ด๋ธ์์ ์ฒ์ 10๊ฐ์ ํ์ ์ถ์ถํ๊ณ ์๋ ๊ฒ์ด๋ค. 'receipt' ํ ์ด๋ธ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
S-002: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ์(sales_ymd), ๊ณ ๊ฐ ์์ด๋(customer_id), ์ํ์ฝ๋(product_cd), ํ๋งค๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ์ฌ 10๊ฑด์ฉ ํ์ํ๋ผ.
%%sql
SELECT
sales_ymd,
customer_id,
product_cd,
amount
FROM receipt
LIMIT 10
;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
20181103 | CS006214000001 | P070305012 | 158 |
20181118 | CS008415000097 | P070701017 | 81 |
20170712 | CS028414000014 | P060101005 | 170 |
20190205 | ZZ000000000000 | P050301001 | 25 |
20180821 | CS025415000050 | P060102007 | 90 |
20190605 | CS003515000195 | P050102002 | 138 |
20181205 | CS024514000042 | P080101005 | 30 |
20190922 | CS040415000178 | P070501004 | 128 |
20170504 | ZZ000000000000 | P071302010 | 770 |
20191010 | CS027514000015 | P071101003 | 680 |
ํด์ค:
์ด ์ฝ๋๋ SQL(Structured Query Language)๋ก ์์ฑ๋์์ผ๋ฉฐ, "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ์๋ค.
SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ ํน์ ์ด "sales_ymd", "customer_id", "product_cd", "amount"๋ฅผ ์ ํํ๊ณ ์์ต๋๋ค. ์ด ์ด๋ค์ ํ๋งค์ผ, ๊ตฌ๋งค๋ฅผ ํ ๊ณ ๊ฐ์ ID, ๊ตฌ๋งคํ ์ํ์ ์ฝ๋, ๊ตฌ๋งค ๊ธ์ก ๋ฑ ๊ตฌ๋งค ๊ฑฐ๋์ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
์ฟผ๋ฆฌ ๋์ ์๋ "LIMIT 10" ๊ตฌ๋ฌธ์ ๊ฒฐ๊ณผ ์งํฉ์ ํ ์ด๋ธ์ ์ฒซ 10๊ฐ์ ํ์ผ๋ก ์ ํํ๋ค. ์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'RECIPATE' ํ ์ด๋ธ์ ๊ธฐ๋ก๋ ์ฒ์ 10๊ฐ์ ๊ฑฐ๋ ๋ฐ์ดํฐ๋ง ๋ฐํํ๋ค.
์์ฝํ๋ฉด, ์ด ์ฝ๋๋ 'sales_ymd', 'customer_id', 'product_cd', 'amount'๋ผ๋ ์ปฌ๋ผ์ ํตํด ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receive' ํ ์ด๋ธ์ ๊ธฐ๋ก๋ ์ฒ์ 10๊ฑด์ ๊ฑฐ๋์ ๋ํ ํน์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค. 'RECEIVE' ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ๊ทธ ์์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
ย
S-003: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ๋งค์ถ์ผ์(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ์ฝ๋(product_cd), ๋งค์ถ๊ธ์ก(amount) ์์ผ๋ก ์ด์ ์ง์ ํ์ฌ 10๊ฑด์ฉ ํ์ํ๋ค. ๋จ, sales_ymdsales_date๋ก ํญ๋ชฉ๋ช ์ ๋ณ๊ฒฝํ๋ฉด์ ์ถ์ถํ๋ค.
%%sql
SELECT
sales_ymd AS sales_date,
customer_id,
product_cd,
amount
FROM receipt
LIMIT 10
;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
sales_date | customer_id | product_cd | amount |
---|---|---|---|
20181103 | CS006214000001 | P070305012 | 158 |
20181118 | CS008415000097 | P070701017 | 81 |
20170712 | CS028414000014 | P060101005 | 170 |
20190205 | ZZ000000000000 | P050301001 | 25 |
20180821 | CS025415000050 | P060102007 | 90 |
20190605 | CS003515000195 | P050102002 | 138 |
20181205 | CS024514000042 | P080101005 | 30 |
20190922 | CS040415000178 | P070501004 | 128 |
20170504 | ZZ000000000000 | P071302010 | 770 |
20191010 | CS027514000015 | P071101003 | 680 |
ํด์ค:
์ด ์ฝ๋๋ SQL(Structured Query Language)๋ก ์์ฑ๋์์ผ๋ฉฐ, "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ์๋ค.
SELECT ๋ฌธ์ "receive" ํ ์ด๋ธ์์ ํน์ ์ปฌ๋ผ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค. ํ์ง๋ง ์ด ๊ฒฝ์ฐ AS ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ปฌ๋ผ ์ด๋ฆ์ ๋ณ๊ฒฝํ๊ณ ์์ต๋๋ค. ์ฒซ ๋ฒ์งธ ์ปฌ๋ผ์ 'sales_ymd'์์ 'sales_date'๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋ค๋ฅธ ์ปฌ๋ผ์ธ 'customer_id', 'product_cd', 'amount'๋ ์๋ ์ด๋ฆ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค.
์ฟผ๋ฆฌ ๋์ ์๋ "LIMIT 10" ๊ตฌ๋ฌธ์ ๊ฒฐ๊ณผ ์งํฉ์ ํ ์ด๋ธ์ ์ฒ์ 10๊ฐ์ ํ์ผ๋ก ์ ํํ๋ค. ์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'RECIPATE' ํ ์ด๋ธ์ ๊ธฐ๋ก๋ ์ฒ์ 10๊ฐ์ ๊ฑฐ๋ ๋ฐ์ดํฐ๋ง ๋ฐํํ๋ค.
์์ฝํ๋ฉด, ์ด ์ฝ๋๋ ์์ ๋ ์ด ์ด๋ฆ 'sales_date', 'customer_id', 'product_cd', 'amount'๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receive' ํ ์ด๋ธ์ ๊ธฐ๋ก๋ ์ฒ์ 10๊ฑด์ ๊ฑฐ๋์ ๋ํ ํน์ ์ด์ ๊ฐ์ ธ์จ๋ค. 'receive' ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์๋ค.
S-004: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount) ์์ผ๋ก ์ด์ ์ง์ ํ๊ณ , ๋ค์ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ์์ค.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โณ์ด๋ค.
%%sql
SELECT
sales_ymd,
customer_id,
product_cd,
amount
FROM
receipt
WHERE
customer_id = 'CS018205000001'
;
* postgresql://padawan:***@db:5432/dsdojo_db 12 rows affected.
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
20180911 | CS018205000001 | P071401012 | 2200 |
20180414 | CS018205000001 | P060104007 | 600 |
20170614 | CS018205000001 | P050206001 | 990 |
20170614 | CS018205000001 | P060702015 | 108 |
20190216 | CS018205000001 | P071005024 | 102 |
20180414 | CS018205000001 | P071101002 | 278 |
20190226 | CS018205000001 | P070902035 | 168 |
20190924 | CS018205000001 | P060805001 | 495 |
20190226 | CS018205000001 | P071401020 | 2200 |
20180911 | CS018205000001 | P071401005 | 1100 |
20190216 | CS018205000001 | P040101002 | 218 |
20190924 | CS018205000001 | P091503001 | 280 |
ํด์ค:
์ด ์ฝ๋๋ SQL(Structured Query Language)๋ก ์์ฑ๋์์ผ๋ฉฐ, "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ์๋ค.
SELECT ๋ฌธ์ "receive" ํ ์ด๋ธ์์ ํน์ ๋ฐ์ดํฐ ์ปฌ๋ผ์ ๊ฐ์ ธ์ค๋๋ฐ ์ฌ์ฉ๋๋ค. ์ ํ๋ ์ปฌ๋ผ์ 'sales_ymd', 'customer_id', 'product_cd', 'amount'์ ๋๋ค. ์ด ์ด๋ค์ ํ๋งค์ผ, ๊ตฌ๋งคํ ๊ณ ๊ฐ์ ID, ๊ตฌ๋งคํ ์ํ์ ์ฝ๋, ๊ตฌ๋งค ๊ธ์ก ๋ฑ ๊ตฌ๋งค ๊ฑฐ๋์ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
FROM ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ '์์์ฆ' ํ ์ด๋ธ์ ์ง์ ํ๋ค.
WHERE ๊ตฌ๋ฌธ์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ์ด ๊ฒฝ์ฐ 'customer_id' ์ปฌ๋ผ์ด 'CS018205000001'๊ณผ ๊ฐ๋ค๋ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ํํฐ๋ง๋๋ค. ์ฆ, ์ด ์ฟผ๋ฆฌ๋ ID๊ฐ 'CS018205000001'์ธ ๊ณ ๊ฐ์ด ์ํํ ๊ฑฐ๋์ ๋ํ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค.
์์ฝํ๋ฉด, ์ด ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receipate' ํ ์ด๋ธ์์ ํน์ ์ด์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ, ID๊ฐ 'CS018205000001'์ธ ํน์ ๊ณ ๊ฐ์ด ์ํํ ๊ฑฐ๋์ ๋ํด์๋ง ๊ฐ์ ธ์จ๋ค๋ ๊ฒ์ด๋ค. 'receipate' ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
S-005: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ๊ณ , ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ
- ๋งค์ถ ๊ธ์ก(amount)์ด 1,000 ์ด์
%%sql
SELECT
sales_ymd,
customer_id,
product_cd,
amount
FROM
receipt
WHERE
customer_id = 'CS018205000001'
AND amount >= 1000
;
* postgresql://padawan:***@db:5432/dsdojo_db 3 rows affected.
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
20180911 | CS018205000001 | P071401012 | 2200 |
20190226 | CS018205000001 | P071401020 | 2200 |
20180911 | CS018205000001 | P071401005 | 1100 |
ํด์ค:
์ด ์ฝ๋๋ SQL(Structured Query Language)๋ก ์์ฑ๋์์ผ๋ฉฐ, "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ์๋ค.
SELECT ๋ฌธ์ "receive" ํ ์ด๋ธ์์ ํน์ ๋ฐ์ดํฐ ์ปฌ๋ผ์ ๊ฐ์ ธ์ค๋๋ฐ ์ฌ์ฉ๋๋ค. ์ ํ๋ ์ปฌ๋ผ์ 'sales_ymd', 'customer_id', 'product_cd', 'amount'์ ๋๋ค. ์ด ์ด๋ค์ ํ๋งค์ผ, ๊ตฌ๋งคํ ๊ณ ๊ฐ์ ID, ๊ตฌ๋งคํ ์ํ์ ์ฝ๋, ๊ตฌ๋งค ๊ธ์ก ๋ฑ ๊ตฌ๋งค ๊ฑฐ๋์ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
FROM ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ '์์์ฆ' ํ ์ด๋ธ์ ์ง์ ํ๋ค.
WHERE ๊ตฌ๋ฌธ์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ํํฐ๋ง๋ฉ๋๋ค.
customer_id ์ปฌ๋ผ์ด 'CS018205000001'๊ณผ ๊ฐ์์ผ ํ๋ค.
๊ธ์ก ์ปฌ๋ผ์ 1000 ์ด์์ด์ด์ผ ํ๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ ID๊ฐ 'CS018205000001'์ธ ๊ณ ๊ฐ์ด ๊ฑฐ๋ํ ๊ธ์ก์ด 1000 ์ด์์ธ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์จ๋ค๋ ๋ป์ด๋ค.
์์ฝํ๋ฉด, ์ด ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receive' ํ ์ด๋ธ์์ ํน์ ์ด์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ, ID๊ฐ 'CS018205000001'์ธ ํน์ ๊ณ ๊ฐ์ด ๊ฑฐ๋ํ ๊ฑฐ๋ ์ค ๊ธ์ก์ด 1000 ์ด์์ธ ๊ฑฐ๋๋ง ๋์์ผ๋ก ํ๋ค. ์์์ฆ ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ๊ทธ ์์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
ย
S-006: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ์๋(quantity), ํ๋งค ๊ธ์ก(amount) ์์ผ๋ก ์ด์ ์ง์ ํ๊ณ , ๋ค์ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ. ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ.
- ํ๋งค๊ธ์ก(amount)์ด 1,000 ์ด์ ๋๋ ํ๋งค์๋(quantity)์ด 5 ์ด์
%%sql
SELECT
sales_ymd,
customer_id,
product_cd,
quantity,
amount
FROM
receipt
WHERE
customer_id = 'CS018205000001'
AND
(
amount >= 1000
OR quantity >= 5
)
;
* postgresql://padawan:***@db:5432/dsdojo_db 5 rows affected.
sales_ymd | customer_id | product_cd | quantity | amount |
---|---|---|---|---|
20180911 | CS018205000001 | P071401012 | 1 | 2200 |
20180414 | CS018205000001 | P060104007 | 6 | 600 |
20170614 | CS018205000001 | P050206001 | 5 | 990 |
20190226 | CS018205000001 | P071401020 | 1 | 2200 |
20180911 | CS018205000001 | P071401005 | 1 | 1100 |
ํด์ค:
์ด ์ฝ๋๋ SQL(Structured Query Language)๋ก ์์ฑ๋์์ผ๋ฉฐ, "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ์๋ค.
SELECT ๋ฌธ์ "receive" ํ ์ด๋ธ์์ ํน์ ๋ฐ์ดํฐ ์ปฌ๋ผ์ ๊ฐ์ ธ์ค๋๋ฐ ์ฌ์ฉ๋๋ค. ์ ํ๋ ์ปฌ๋ผ์ 'sales_ymd', 'customer_id', 'product_cd', 'quantity', 'amount'์ ๋๋ค. ์ด ์ด๋ค์ ํ๋งค์ผ, ๊ตฌ๋งคํ ๊ณ ๊ฐ์ ID, ๊ตฌ๋งคํ ์ํ์ ์ฝ๋, ๊ตฌ๋งคํ ์ํ์ ์๋, ๊ตฌ๋งค ๊ธ์ก ๋ฑ ๊ตฌ๋งค ๊ฑฐ๋์ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
FROM ๋ฌธ์์๋ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ '์์์ฆ' ํ ์ด๋ธ์ ์ง์ ํฉ๋๋ค.
WHERE ๊ตฌ๋ฌธ์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ํํฐ๋ง๋ฉ๋๋ค.
customer_id ์ปฌ๋ผ์ด 'CS018205000001'๊ณผ ๊ฐ์์ผ ํ๋ค.
ํธ๋์ญ์ ์ ๋ค์ ๋ ๊ฐ์ง ์กฐ๊ฑด ์ค ํ๋ ์ด์์ ์ถฉ์กฑํด์ผ ํ๋ค: a. '๊ธ์ก' ์ปฌ๋ผ์ด 1000 ์ด์์ผ ๊ฒ. b. '์๋' ์ปฌ๋ผ์ด 5 ์ด์์ผ ๊ฒ.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ ID๊ฐ 'CS018205000001'์ธ ๊ณ ๊ฐ์ด ๊ฑฐ๋ํ ๊ธ์ก์ด 1000 ์ด์ ๋๋ ์๋์ด 5 ์ด์์ธ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์จ๋ค๋ ๋ป์ด๋ค.
์์ฝํ๋ฉด, ์ด ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receipate' ํ ์ด๋ธ์์ ํน์ ์ด์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๋๋ฐ, ID๊ฐ 'CS018205000001'์ธ ํน์ ๊ณ ๊ฐ์ด ์ํํ ๊ฑฐ๋ ์ค ๊ธ์ก์ด 1000 ์ด์ ๋๋ ์๋์ด 5 ์ด์์ธ ๊ฑฐ๋๋ง์ ๋์์ผ๋ก ํ๋ค. ์์์ฆ ํ ์ด๋ธ์ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ๊ทธ ์์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
S-007: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ๊ณ , ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ
- ๋งค์ถ ๊ธ์ก(amount)์ด 1,000 ์ด์ 2,000 ์ดํ
%%sql
SELECT
sales_ymd,
customer_id,
product_cd,
amount
FROM
receipt
WHERE
customer_id = 'CS018205000001'
AND amount BETWEEN 1000 AND 2000
;
* postgresql://padawan:***@db:5432/dsdojo_db 1 rows affected.
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
20180911 | CS018205000001 | P071401005 | 1100 |
ํด์ค:
์ด ์ฝ๋๋ SQL(Structured Query Language)๋ก ์์ฑ๋์์ผ๋ฉฐ, "receipt"๋ผ๋ ์ด๋ฆ์ ํ ์ด๋ธ์ ์กฐํํ๊ณ ์๋ค.
SELECT ๋ฌธ์ "receive" ํ ์ด๋ธ์์ ํน์ ๋ฐ์ดํฐ ์ปฌ๋ผ์ ๊ฐ์ ธ์ค๋๋ฐ ์ฌ์ฉ๋๋ค. ์ ํ๋ ์ปฌ๋ผ์ 'sales_ymd', 'customer_id', 'product_cd', 'amount'์ ๋๋ค. ์ด ์ด๋ค์ ํ๋งค์ผ, ๊ตฌ๋งคํ ๊ณ ๊ฐ์ ID, ๊ตฌ๋งคํ ์ํ์ ์ฝ๋, ๊ตฌ๋งค ๊ธ์ก ๋ฑ ๊ตฌ๋งค ๊ฑฐ๋์ ๊ด๋ จ๋ ๋ค์ํ ์ ๋ณด๋ฅผ ๋ํ๋ธ๋ค.
FROM ๋ฌธ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ '์์์ฆ' ํ ์ด๋ธ์ ์ง์ ํ๋ค.
WHERE ๊ตฌ๋ฌธ์ ํน์ ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ ๋ ๊ฐ์ง ์กฐ๊ฑด์ ๋ฐ๋ผ ๋ฐ์ดํฐ๊ฐ ํํฐ๋ง๋ฉ๋๋ค.
customer_id ์ปฌ๋ผ์ด 'CS018205000001'๊ณผ ๊ฐ์์ผ ํ๋ค.
๊ธ์ก ์ปฌ๋ผ์ 1000์์ 2000 ์ฌ์ด์ฌ์ผ ํ๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ ID๊ฐ 'CS018205000001'์ธ ๊ณ ๊ฐ์ด ๊ฑฐ๋ํ ๊ธ์ก์ด 1000์์ 2000 ์ฌ์ด์ธ ๋ฐ์ดํฐ๋ง ๊ฐ์ ธ์ค๋ ๊ฒ์ด๋ค(๋จ, 1000์์ 2000 ์ฌ์ด๋ ํฌํจ๋๋ค).
WHERE ์ ์ BETWEEN ์ฐ์ฐ์๋ ๊ฐ์ ๋ฒ์์ ๋ฐ๋ผ ๊ฒฐ๊ณผ๋ฅผ ํํฐ๋งํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด ๊ฒฝ์ฐ '๊ธ์ก' ์ปฌ๋ผ์ด 1000์์ 2000 ์ฌ์ด์ ์๋ ํธ๋์ญ์ (ํฌํจ)์ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์์ฝํ๋ฉด, ์ด ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ 'receipt' ํ ์ด๋ธ์์ ํน์ ์ด์ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์์ง๋ง, ID๊ฐ 'CS018205000001'์ธ ํน์ ๊ณ ๊ฐ์ด ์ํํ ๊ฑฐ๋ ์ค ๊ธ์ก์ด 1000์์ 2000 ์ฌ์ด์ธ ๊ฑฐ๋๋ก ์ ํํ๊ณ ์๋ค. ์์์ฆ ํ ์ด๋ธ ๋ฐ์ดํฐ์ ์ ํํ ์๋ฏธ์ ๊ตฌ์กฐ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์คํค๋ง์ ์ ์ฅ๋ ์ ๋ณด์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ค.
ย
S-008: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์์ ํ๋งค์ผ(sales_ymd), ๊ณ ๊ฐ ID(customer_id), ์ํ ์ฝ๋(product_cd), ํ๋งค ๊ธ์ก(amount)์ ์์๋ก ์ด์ ์ง์ ํ๊ณ , ์๋ ์กฐ๊ฑด์ ๋ชจ๋ ๋ง์กฑํ๋ ๋ฐ์ดํฐ๋ฅผ ์ถ์ถํ๋ผ.
- ๊ณ ๊ฐ ID(customer_id)๊ฐ โCS018205000001โ
- ์ํ์ฝ๋(product_cd)๊ฐ โP071401019โ ์ด์ธ
%%sql
SELECT
sales_ymd,
customer_id,
product_cd, amount
FROM
receipt
WHERE
customer_id = 'CS018205000001'
AND product_cd != 'P071401019'
;
* postgresql://padawan:***@db:5432/dsdojo_db 12 rows affected.
sales_ymd | customer_id | product_cd | amount |
---|---|---|---|
20180911 | CS018205000001 | P071401012 | 2200 |
20180414 | CS018205000001 | P060104007 | 600 |
20170614 | CS018205000001 | P050206001 | 990 |
20170614 | CS018205000001 | P060702015 | 108 |
20190216 | CS018205000001 | P071005024 | 102 |
20180414 | CS018205000001 | P071101002 | 278 |
20190226 | CS018205000001 | P070902035 | 168 |
20190924 | CS018205000001 | P060805001 | 495 |
20190226 | CS018205000001 | P071401020 | 2200 |
20180911 | CS018205000001 | P071401005 | 1100 |
20190216 | CS018205000001 | P040101002 | 218 |
20190924 | CS018205000001 | P091503001 | 280 |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ "RECIPATE" ํ ์ด๋ธ์์ ๋ฐ์ดํฐ๋ฅผ ์ ํํ๊ณ ์์ต๋๋ค.
์ ํ๋ ์ปฌ๋ผ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. "sales_ymd", "customer_id", "product_cd", "amount"์ ๋๋ค.
์ด ์ฟผ๋ฆฌ๋ 'customer_id'๊ฐ 'CS018205000001'๊ณผ ๊ฐ๊ณ 'product_cd'๊ฐ 'P0714019'์ ๊ฐ์ง ์์ ๋ ์ฝ๋๋ง ์ ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ customer_id 'CS018205000001'์ ๋ํด product_cd๊ฐ 'P071401019'์ธ ๋ ์ฝ๋๋ฅผ ์ ์ธํ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์๋ค.
ย
S-009: ๋ค์ ์ฒ๋ฆฌ์์ ์ถ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๊พธ์ง ์๊ณ OR์ AND๋ก ๋ค์ ์์ฑํ์์ค.
SELECT * FROM store WHERE NOT (prefecture_cd = '13' OR floor_area > 900)
%%sql
SELECT * FROM store WHERE prefecture_cd != '13' AND floor_area <= 900;
* postgresql://padawan:***@db:5432/dsdojo_db 3 rows affected.
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
S12013 | ็ฟๅฟ้ๅบ | 12 | ๅ่็ | ๅ่็็ฟๅฟ้ๅธ่ๅไธไธ็ฎ | ใใใฑใณใใฉใทใใทใทใใพใใคใใใงใฆใก | 047-123-4002 | 140.022 | 35.66122 | 808.0 |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ณ ์์ต๋๋ค.
SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ "store" ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์์ต๋๋ค.
์ด ์ฟผ๋ฆฌ๋ 'prefecture_cd'๊ฐ '13'๊ณผ ๊ฐ์ง ์๊ณ 'floor_area'๊ฐ 900 ์ดํ์ธ ๋ ์ฝ๋๋ง ์ ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'store' ํ ์ด๋ธ์์ 'prefecture_cd'๊ฐ 13 ์ดํ์ด๊ณ 'floor_area'๊ฐ 900 ์ดํ์ธ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์์ต๋๋ค.
S-010: ๋งค์ฅ ๋ฐ์ดํฐ(df_store)์์ ๋งค์ฅ ์ฝ๋(store_cd)๊ฐ โS14โณ๋ก ์์ํ๋ ํญ๋ชฉ๋ง ์ ์ฒด ์ถ์ถํ์ฌ 10๊ฐ๋ฅผ ํ์ํ๋ผ.
%%sql
SELECT
*
FROM store
WHERE
store_cd LIKE 'S14%'
LIMIT 10
;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
S14010 | ่ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบ่ๅไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใญใฏใใคใใใงใฆใก | 045-123-4032 | 139.6326 | 35.50049 | 1732.0 |
S14033 | ้ฟไน ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4043 | 139.4961 | 35.45918 | 1495.0 |
S14036 | ็ธๆจกๅไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็็ธๆจกๅๅธไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใตใฌใใใฉใทใใฅใฆใชใฆใใใงใฆใก | 042-123-4045 | 139.3716 | 35.57327 | 1679.0 |
S14040 | ้ทๆดฅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐใฟใชใฟๅฐไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใใชใฏใใฌใใฟใใใใใคใดใใงใฆใก | 045-123-4046 | 139.4994 | 35.52398 | 1548.0 |
S14050 | ้ฟไน ๅ่ฅฟๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4053 | 139.4961 | 35.45918 | 1830.0 |
S14028 | ไบใๆฉๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใใฟใใใทใใงใฆ | 045-123-4042 | 139.4963 | 35.46304 | 1574.0 |
S14012 | ๆฌ็งๅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็งๅ็ฐ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใใณใขใฏใฏใ | 045-123-4034 | 139.6582 | 35.42156 | 1341.0 |
S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
S14022 | ้ๅญๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็้ๅญๅธ้ๅญไธไธ็ฎ | ใซใใฌใฏใฑใณใบใทใทใบใทใคใใใงใฆใก | 046-123-4036 | 139.5789 | 35.29642 | 1838.0 |
S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ "store" ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ฟผ๋ฆฌ๋ ์์ผ๋์นด๋ ๋ฌธ์ '%'๋ฅผ ์ฌ์ฉํ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ 'store_cd' ์ด์ด 'S14'๋ก ์์ํ๋ ๋ ์ฝ๋๋ง ์ ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์๋ค.
๋ํ ์ด ์ฟผ๋ฆฌ๋ LIMIT ์ ์ ์ฌ์ฉํ์ฌ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๊ณ ์์ต๋๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'store' ํ ์ด๋ธ์์ 'store_cd'๊ฐ 'S14'๋ก ์์ํ๋ ๋ ์ฝ๋๋ฅผ ์ต๋ 10๊ฐ๊น์ง๋ง ๋ฐํํฉ๋๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์๋ค.
ย
S-011: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ๊ณ ๊ฐ ID(customer_id)์ ๋์๋ฆฌ๊ฐ 1์ธ ํญ๋ชฉ๋ง ์ ์ฒด ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
%%sql
SELECT * FROM customer WHERE customer_id LIKE '%1' LIMIT 10;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|
CS037613000071 | ๅ ญ่ง ้ ๅฝฆ | 9 | ไธๆ | 1952-04-01 | 66 | 136-0076 | ๆฑไบฌ้ฝๆฑๆฑๅบๅ็ ********** | S13037 | 20150414 | 0-00000000-0 |
CS028811000001 | ๅ ไบ ใใใ | 1 | ๅฅณๆง | 1933-03-27 | 86 | 245-0016 | ็ฅๅฅๅท็ๆจชๆตๅธๆณๅบๅๆณ็บ********** | S14028 | 20160115 | 0-00000000-0 |
CS040412000191 | ๅทไบ ้ๆต | 1 | ๅฅณๆง | 1977-01-05 | 42 | 226-0021 | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบๅๅ ซๆ็บ********** | S14040 | 20151101 | 1-20091025-4 |
CS028314000011 | ๅฐ่ ใใใ | 1 | ๅฅณๆง | 1983-11-26 | 35 | 246-0038 | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบๅฎฎๆฒข********** | S14028 | 20151123 | 1-20080426-5 |
CS039212000051 | ่คๅณถ ๆตๆขจ้ฆ | 1 | ๅฅณๆง | 1997-02-03 | 22 | 166-0001 | ๆฑไบฌ้ฝๆไธฆๅบ้ฟไฝ่ฐทๅ********** | S13039 | 20171121 | 1-20100215-4 |
CS015412000111 | ๆพๅฑ ๅฅๆ | 1 | ๅฅณๆง | 1972-10-04 | 46 | 136-0071 | ๆฑไบฌ้ฝๆฑๆฑๅบไบๆธ********** | S13015 | 20150629 | 0-00000000-0 |
CS004702000041 | ้ๅณถ ๆด | 0 | ็ทๆง | 1943-08-24 | 75 | 176-0022 | ๆฑไบฌ้ฝ็ทด้ฆฌๅบๅๅฑฑ********** | S13004 | 20170218 | 0-00000000-0 |
CS041515000001 | ๆ ็ฐ ๅๅค | 1 | ๅฅณๆง | 1967-01-02 | 52 | 206-0001 | ๆฑไบฌ้ฝๅคๆฉๅธๅ็ฐ********** | S13041 | 20160422 | E-20100803-F |
CS029313000221 | ๅๆก ใฒใใ | 1 | ๅฅณๆง | 1987-06-19 | 31 | 279-0011 | ๅ่็ๆตฆๅฎๅธ็พๆต********** | S12029 | 20180810 | 0-00000000-0 |
CS034312000071 | ๆๆ ๅฅๅคฎ | 1 | ๅฅณๆง | 1980-09-20 | 38 | 213-0026 | ็ฅๅฅๅท็ๅทๅดๅธ้ซๆดฅๅบไน ๆซ********** | S14034 | 20160106 | 0-00000000-0 |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์์ต๋๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ 'customer' ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ฟผ๋ฆฌ๋ ์์ผ๋์นด๋ ๋ฌธ์ '%'๋ฅผ ์ฌ์ฉํ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ 'customer_id' ์ด์ ๋์ด ์ซ์ '1'์ธ ๋ ์ฝ๋๋ง ์ ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์์ต๋๋ค.
๋ํ LIMIT ์ ์ ์ฌ์ฉํ์ฌ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๊ณ ์์ต๋๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'customer_id'์ ๋์ด ์ซ์ '1'์ธ 'customer' ํ ์ด๋ธ์์ ์ต๋ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํฉ๋๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ธํธ๋ถ ๋ด์์ SQL ์ฝ๋๋ฅผ ์ง์ ์คํํ ์ ์๋ค.
ย
S-012: ์ ํฌ ๋ฐ์ดํฐ(df_store)์์ ์ฃผ์(address)์ โ์์ฝํ๋ง์โ๊ฐ ํฌํจ๋ ํญ๋ชฉ๋ง ๋ชจ๋ ํ์ํ๋ค.
%%sql
SELECT * FROM store WHERE address LIKE '%ๆจชๆตๅธ%';
* postgresql://padawan:***@db:5432/dsdojo_db 11 rows affected.
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
S14010 | ่ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบ่ๅไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใญใฏใใคใใใงใฆใก | 045-123-4032 | 139.6326 | 35.50049 | 1732.0 |
S14033 | ้ฟไน ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4043 | 139.4961 | 35.45918 | 1495.0 |
S14040 | ้ทๆดฅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐใฟใชใฟๅฐไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใใชใฏใใฌใใฟใใใใใคใดใใงใฆใก | 045-123-4046 | 139.4994 | 35.52398 | 1548.0 |
S14050 | ้ฟไน ๅ่ฅฟๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4053 | 139.4961 | 35.45918 | 1830.0 |
S14028 | ไบใๆฉๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใใฟใใใทใใงใฆ | 045-123-4042 | 139.4963 | 35.46304 | 1574.0 |
S14012 | ๆฌ็งๅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็งๅ็ฐ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใใณใขใฏใฏใ | 045-123-4034 | 139.6582 | 35.42156 | 1341.0 |
S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
S14048 | ไธญๅทไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบไธญๅทไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใใซใฌใฏใใฅใฆใชใฆใใใงใฆใก | 045-123-4051 | 139.5758 | 35.54912 | 1657.0 |
S14042 | ๆฐๅฑฑไธๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฐๅฑฑไธไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใทใณใคใใทใฟใใใงใฆใก | 045-123-4047 | 139.6593 | 35.43894 | 1044.0 |
S14006 | ่ใ่ฐทๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบ่ใ่ฐท | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใฏใบใฌใค | 045-123-4031 | 139.5633 | 35.53573 | 1886.0 |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ "store" ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ฟผ๋ฆฌ๋ ์์ผ๋์นด๋ ๋ฌธ์ '%'๊ฐ ํฌํจ๋ LIKE ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ 'address' ์ด์ 'yokohama city' ๋ฌธ์์ด์ด ํฌํจ๋ ๋ ์ฝ๋๋ง ์ ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'store' ํ ์ด๋ธ์์ 'address' ์ด์ 'yokohama city' ๋ฌธ์์ด์ด ํฌํจ๋ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ธํธ๋ถ ๋ด์์ SQL ์ฝ๋๋ฅผ ์ง์ ์คํํ ์ ์์ต๋๋ค.
ย
ย
S-013: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ์ํ์ฝ๋(status_cd)๊ฐ ์ํ๋ฒณ A~F๋ก ์์ํ๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
%%sql
SELECT * FROM customer WHERE status_cd ~ '^[A-F]' LIMIT 10;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|
CS031415000172 | ๅฎๅค็ฐ ่ฒด็พๅญ | 1 | ๅฅณๆง | 1976-10-04 | 42 | 151-0053 | ๆฑไบฌ้ฝๆธ่ฐทๅบไปฃใ ๆจ********** | S13031 | 20150529 | D-20100325-C |
CS015414000103 | ๅฅฅ้ ้ฝๅญ | 1 | ๅฅณๆง | 1977-08-09 | 41 | 136-0073 | ๆฑไบฌ้ฝๆฑๆฑๅบๅ็ ********** | S13015 | 20150722 | B-20100609-B |
CS011215000048 | ่ฆ็ฐ ๆฒ่ถ | 1 | ๅฅณๆง | 1992-02-01 | 27 | 223-0062 | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บ********** | S14011 | 20150228 | C-20100421-9 |
CS029415000023 | ๆข ็ฐ ้็ฉ | 1 | ๅฅณๆง | 1976-01-17 | 43 | 279-0043 | ๅ่็ๆตฆๅฎๅธๅฏๅฃซ่ฆ********** | S12029 | 20150610 | D-20100918-E |
CS035415000029 | ๅฏบๆฒข ็ๅธ | 9 | ไธๆ | 1977-09-27 | 41 | 158-0096 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบ็ๅทๅฐ********** | S13035 | 20141220 | F-20101029-F |
CS031415000106 | ๅฎ้ ็ฑ็พๅญ | 1 | ๅฅณๆง | 1970-02-26 | 49 | 151-0053 | ๆฑไบฌ้ฝๆธ่ฐทๅบไปฃใ ๆจ********** | S13031 | 20150201 | F-20100511-E |
CS029215000025 | ็ณๅ ็พๅธ | 1 | ๅฅณๆง | 1993-09-28 | 25 | 279-0022 | ๅ่็ๆตฆๅฎๅธไปๅท********** | S12029 | 20150708 | B-20100820-C |
CS033605000005 | ็ช่ก ้ๅคช | 0 | ็ทๆง | 1955-12-05 | 63 | 246-0031 | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ็ฌ่ฐท********** | S14033 | 20150425 | F-20100917-E |
CS033415000229 | ๆฟๅฃ ่ใ ็พ | 1 | ๅฅณๆง | 1977-11-07 | 41 | 246-0021 | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ********** | S14033 | 20150712 | F-20100326-E |
CS008415000145 | ้ป่ฐท ้บป็ท | 1 | ๅฅณๆง | 1977-06-27 | 41 | 157-0067 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๅๅค่ฆ********** | S13008 | 20150829 | F-20100622-F |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์์ต๋๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ 'customer' ํ ์ด๋ธ์์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ 'status_cd' ์ปฌ๋ผ์ด ์ ๊ท์ ํจํด '^[A-F]'์ ์ผ์นํ๋ ๋ ์ฝ๋๋ง ์ ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์์ต๋๋ค(~ ์ฐ์ฐ์ ์ฌ์ฉ).
์ ๊ท์ ํจํด '^[A-F]'๋ "status_cd" ์ปฌ๋ผ์ A์์ F๋ก ์์ํ๋ ๋ชจ๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค. ํจํด ๋ด ^ ๋ฌธ์๋ ๋ฌธ์์ด์ ์์์ ๋ํ๋ด๋ฉฐ, [A-F]๋ ๋ฌธ์์ ๋ฒ์๋ฅผ ์ง์ ํ๋ค.
๋ํ ์ด ์ฟผ๋ฆฌ๋ LIMIT ์ ์ ์ฌ์ฉํ์ฌ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๊ณ ์๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'status_cd' ์ปฌ๋ผ์ด A~F๋ก ์์ํ๋ 'customer' ํ ์ด๋ธ์์ ์ต๋ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์์ต๋๋ค.
ย
S-014: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ์ํ์ฝ๋(status_cd)์ ๋์๋ฆฌ๊ฐ ์ซ์ 1~9๋ก ๋๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
%%sql
SELECT * FROM customer WHERE status_cd ~ '[1-9]$' LIMIT 10;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|
CS001215000145 | ็ฐๅด ็พ็ด | 1 | ๅฅณๆง | 1995-03-29 | 24 | 144-0055 | ๆฑไบฌ้ฝๅคง็ฐๅบไปฒๅ ญ้ท********** | S13001 | 20170605 | 6-20090929-2 |
CS033513000180 | ๅฎๆ ้ฅ | 1 | ๅฅณๆง | 1962-07-11 | 56 | 241-0823 | ็ฅๅฅๅท็ๆจชๆตๅธๆญๅบๅ้จ็บ********** | S14033 | 20150728 | 6-20080506-5 |
CS011215000048 | ่ฆ็ฐ ๆฒ่ถ | 1 | ๅฅณๆง | 1992-02-01 | 27 | 223-0062 | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บ********** | S14011 | 20150228 | C-20100421-9 |
CS040412000191 | ๅทไบ ้ๆต | 1 | ๅฅณๆง | 1977-01-05 | 42 | 226-0021 | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบๅๅ ซๆ็บ********** | S14040 | 20151101 | 1-20091025-4 |
CS009315000023 | ็ๅท ๆไธ | 1 | ๅฅณๆง | 1980-04-15 | 38 | 154-0012 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบ้งๆฒข********** | S13009 | 20150319 | 5-20080322-1 |
CS015315000033 | ็ฆๅฃซ ็ๅฅๅญ | 1 | ๅฅณๆง | 1983-03-17 | 36 | 135-0043 | ๆฑไบฌ้ฝๆฑๆฑๅบๅกฉๆต********** | S13015 | 20141024 | 4-20080219-3 |
CS023513000066 | ็ฅๆธ ใใ | 1 | ๅฅณๆง | 1961-12-17 | 57 | 210-0005 | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบๆฑ็ฐ็บ********** | S14023 | 20150915 | 5-20100524-9 |
CS035513000134 | ๅธๅท ็พๅธ | 1 | ๅฅณๆง | 1960-03-27 | 59 | 156-0053 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๆก********** | S13035 | 20150227 | 8-20100711-9 |
CS001515000263 | ้ซๆพ ๅค็ฉบ | 1 | ๅฅณๆง | 1962-11-09 | 56 | 144-0051 | ๆฑไบฌ้ฝๅคง็ฐๅบ่ฅฟ่ฒ็ฐ********** | S13001 | 20160812 | 1-20100804-1 |
CS040314000027 | ้ถด็ฐ ใใฟใพใ | 9 | ไธๆ | 1986-03-26 | 33 | 226-0027 | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐ********** | S14040 | 20150122 | 2-20080426-4 |
ํด์ค:
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์์ต๋๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ 'customer' ํ ์ด๋ธ์์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ "status_cd" ์ปฌ๋ผ์ด '[1-9]$' ์ ๊ทํํ์ ํจํด๊ณผ ์ผ์นํ๋ ๋ ์ฝ๋๋ง ์ ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์์ต๋๋ค(~ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค).
์ ๊ท์ ํจํด '[1-9]$'๋ "status_cd" ์ปฌ๋ผ์ 1๋ถํฐ 9๊น์ง ์ซ์๋ก ๋๋๋ ๋ชจ๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค. ํจํด์ $ ๋ฌธ์๋ ๋ฌธ์์ด์ ๋์ ๋ํ๋ด๋ฉฐ, [1-9]๋ ๋ฌธ์ ๋ฒ์๋ฅผ ์ง์ ํ๋ค.
๋ํ ์ด ์ฟผ๋ฆฌ๋ LIMIT ์ ์ ์ฌ์ฉํ์ฌ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๊ณ ์๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'status_cd' ์ปฌ๋ผ์ ๋์๋ฆฌ๊ฐ 1๋ถํฐ 9๊น์ง์ ์ซ์์ธ 'customer' ํ ์ด๋ธ์์ ์ต๋ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ๋ฉด ๋ ธํธ๋ถ ๋ด์์ SQL ์ฝ๋๋ฅผ ์ง์ ์คํํ ์ ์๋ค.
S-015: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)์์ ์ํ์ฝ๋(status_cd)์ ์์์ด ์ํ๋ฒณ A~F๋ก ์์ํ๊ณ ๋์ด ์ซ์ 1~9๋ก ๋๋๋ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ์ถ์ถํ์ฌ 10๊ฑด์ ํ์ํ๋ผ.
%%sql
SELECT * FROM customer WHERE status_cd ~ '^[A-F].*[1-9]$' LIMIT 10;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|
CS011215000048 | ่ฆ็ฐ ๆฒ่ถ | 1 | ๅฅณๆง | 1992-02-01 | 27 | 223-0062 | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บ********** | S14011 | 20150228 | C-20100421-9 |
CS022513000105 | ๅณถๆ ่ฒด็พๅญ | 1 | ๅฅณๆง | 1962-03-12 | 57 | 249-0002 | ็ฅๅฅๅท็้ๅญๅธๅฑฑใฎๆ น********** | S14022 | 20150320 | A-20091115-7 |
CS001515000096 | ๆฐด้ ้ฝๅญ | 9 | ไธๆ | 1960-11-29 | 58 | 144-0053 | ๆฑไบฌ้ฝๅคง็ฐๅบ่ฒ็ฐๆฌ็บ********** | S13001 | 20150614 | A-20100724-7 |
CS013615000053 | ่ฅฟ่ ๅญฃ่กฃ | 1 | ๅฅณๆง | 1953-10-18 | 65 | 261-0026 | ๅ่็ๅ่ๅธ็พๆตๅบๅนๅผต่ฅฟ********** | S12013 | 20150128 | B-20100329-6 |
CS020412000161 | ๅฐๅฎฎ ่ซ | 1 | ๅฅณๆง | 1974-05-21 | 44 | 174-0042 | ๆฑไบฌ้ฝๆฟๆฉๅบๆฑๅไธ********** | S13020 | 20150822 | B-20081021-3 |
CS001215000097 | ็ซนไธญ ใใใฟ | 1 | ๅฅณๆง | 1990-07-25 | 28 | 146-0095 | ๆฑไบฌ้ฝๅคง็ฐๅบๅคๆฉๅท********** | S13001 | 20170315 | A-20100211-2 |
CS035212000007 | ๅ ๆ ๆตๆขจ้ฆ | 1 | ๅฅณๆง | 1990-12-04 | 28 | 152-0023 | ๆฑไบฌ้ฝ็ฎ้ปๅบๅ ซ้ฒ********** | S13035 | 20151013 | B-20101018-6 |
CS002515000386 | ้็ฐ ใณใฆ | 1 | ๅฅณๆง | 1963-05-30 | 55 | 185-0013 | ๆฑไบฌ้ฝๅฝๅๅฏบๅธ่ฅฟๆใฑ็ชช********** | S13002 | 20160410 | C-20100127-8 |
CS001615000372 | ็จฒๅฃ ๅฏฟใ ่ฑ | 1 | ๅฅณๆง | 1956-10-29 | 62 | 144-0035 | ๆฑไบฌ้ฝๅคง็ฐๅบๅ่ฒ็ฐ********** | S13001 | 20170403 | A-20100104-1 |
CS032512000121 | ๆพไบ ็ฅไธ | 1 | ๅฅณๆง | 1962-09-04 | 56 | 210-0011 | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบๅฏๅฃซ่ฆ********** | S13032 | 20150727 | A-20100103-5 |
์ค๋ช :ย
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์์ต๋๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ 'customer' ํ ์ด๋ธ์์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ 'status_cd' ์ปฌ๋ผ์ด ์ ๊ท์ ํจํด '^[A-F]. *[1-9]$'์ ์ผ์นํ๋ ๋ ์ฝ๋๋ง ์ ํํจ์ผ๋ก์จ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์์ต๋๋ค(~ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค).
์ ๊ท์ ํจํด '^[A-F]. *[1-9]$'๋ 'status_cd' ์ด์์ A~F๋ก ์์ํ๊ณ ์์์ ์์ ๋ฌธ์๊ฐ ์ด์ด์ง๋ฉฐ 1~9์ ์ซ์๋ก ๋๋๋ ๋ชจ๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค. ํจํด ๋ด ^ ๋ฌธ์๋ ๋ฌธ์์ด์ ์์์ ๋ํ๋ด๊ณ , $ ๋ฌธ์๋ ๋ฌธ์์ด์ ๋์ ๋ํ๋ธ๋ค.
๋ํ ์ด ์ฟผ๋ฆฌ๋ LIMIT ์ ์ ์ฌ์ฉํ์ฌ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๊ณ ์๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'status_cd' ์ปฌ๋ผ์ด A~F ๋ฌธ์๋ก ์์ํ๊ณ 1~9 ์ซ์๋ก ๋๋๋ 'customer' ํ ์ด๋ธ์์ ์ต๋ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์์ต๋๋ค.
ย
S-016: ๋งค์ฅ ๋ฐ์ดํฐ(df_store)์์ ์ ํ๋ฒํธ(tel_no)๊ฐ 3์๋ฆฌ-3์๋ฆฌ-4์๋ฆฌ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ชจ๋ ํ์ํ๋ผ.
%%sql
SELECT * FROM store WHERE tel_no ~ '^[0-9]{3}-[0-9]{3}-[0-9]{4}$';
* postgresql://padawan:***@db:5432/dsdojo_db 34 rows affected.
store_cd | store_name | prefecture_cd | prefecture | address | address_kana | tel_no | longitude | latitude | floor_area |
---|---|---|---|---|---|---|---|---|---|
S12014 | ๅ่ๅฐๅบ | 12 | ๅ่็ | ๅ่็ๅ่ๅธ็จฒๆฏๅบๅ่ๅฐไธไธ็ฎ | ใใใฑใณใใใทใคใใฒใฏใใฐใตใใคใคใใใงใฆใก | 043-123-4003 | 140.118 | 35.63559 | 1698.0 |
S13002 | ๅฝๅๅฏบๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๅฝๅๅฏบๅธๆฌๅคไบไธ็ฎ | ใใฆใญใงใฆใใณใฏใใณใธใทใใณใใใใงใฆใก | 042-123-4008 | 139.4802 | 35.70566 | 1735.0 |
S14010 | ่ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบ่ๅไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใญใฏใใคใใใงใฆใก | 045-123-4032 | 139.6326 | 35.50049 | 1732.0 |
S14033 | ้ฟไน ๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4043 | 139.4961 | 35.45918 | 1495.0 |
S14036 | ็ธๆจกๅไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็็ธๆจกๅๅธไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใตใฌใใใฉใทใใฅใฆใชใฆใใใงใฆใก | 042-123-4045 | 139.3716 | 35.57327 | 1679.0 |
S14040 | ้ทๆดฅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ทๅบ้ทๆดฅ็ฐใฟใชใฟๅฐไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใใชใฏใใฌใใฟใใใใใคใดใใงใฆใก | 045-123-4046 | 139.4994 | 35.52398 | 1548.0 |
S14050 | ้ฟไน ๅ่ฅฟๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบ้ฟไน ๅ่ฅฟไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใขใฏใฏใใทใคใใใงใฆใก | 045-123-4053 | 139.4961 | 35.45918 | 1830.0 |
S13052 | ๆฃฎ้ๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝ็บ็ฐๅธๆฃฎ้ไธไธ็ฎ | ใใฆใญใงใฆใใใใใทใขใชใใตใณใใงใฆใก | 042-123-4030 | 139.4383 | 35.55293 | 1087.0 |
S14028 | ไบใๆฉๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ็ฌ่ฐทๅบไบใๆฉ็บ | ใซใใฌใฏใฑใณใจใณใใใทใปใคใฏใใฟใใใทใใงใฆ | 045-123-4042 | 139.4963 | 35.46304 | 1574.0 |
S14012 | ๆฌ็งๅ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็งๅ็ฐ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใใณใขใฏใฏใ | 045-123-4034 | 139.6582 | 35.42156 | 1341.0 |
S14046 | ๅๅฑฑ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบๅๅฑฑ็ฐไธไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใญใฟใคใใฟใคใใใงใฆใก | 045-123-4049 | 139.5916 | 35.56189 | 831.0 |
S14022 | ้ๅญๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็้ๅญๅธ้ๅญไธไธ็ฎ | ใซใใฌใฏใฑใณใบใทใทใบใทใคใใใงใฆใก | 046-123-4036 | 139.5789 | 35.29642 | 1838.0 |
S14011 | ๆฅๅๆฌ็บๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธๆธฏๅๅบๆฅๅๆฌ็บๅไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใณใฆใใฏใฏใใจใทใใณใใงใฆใจใณใใงใฆใก | 045-123-4033 | 139.6316 | 35.54655 | 890.0 |
S13016 | ๅฐ้ไบๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๅฐ้ไบๅธๆฌ็บไธไธ็ฎ | ใใฆใญใงใฆใใณใฌใใคใทใใณใใงใฆใคใใใงใฆใก | 042-123-4015 | 139.5094 | 35.70018 | 1399.0 |
S14034 | ๅทๅด้ๅทๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅฎฎๅๅบ้ๅท | ใซใใฌใฏใฑใณใซใฏใตใญใทใใคใใจใฏใใฌใฏ | 044-123-4044 | 139.5998 | 35.57693 | 1318.0 |
S14048 | ไธญๅทไธญๅคฎๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบไธญๅทไธญๅคฎไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใใซใฌใฏใใฅใฆใชใฆใใใงใฆใก | 045-123-4051 | 139.5758 | 35.54912 | 1657.0 |
S12007 | ไฝๅๅบ | 12 | ๅ่็ | ๅ่็ไฝๅๅธไธๅฟๆดฅ | ใใใฑใณใตใฏใฉใทใซใใทใ | 043-123-4001 | 140.1452 | 35.71872 | 1895.0 |
S14026 | ่พปๅ ่ฅฟๆตทๅฒธๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็่คๆฒขๅธ่พปๅ ่ฅฟๆตทๅฒธไบไธ็ฎ | ใซใใฌใฏใฑใณใใธใตใฏใทใใธใใฆใใทใซใคใฌใณใใใงใฆใก | 046-123-4040 | 139.4466 | 35.32464 | 1732.0 |
S13041 | ๅ ซ็ๅญๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๅ ซ็ๅญๅธๅคงๅก | ใใฆใญใงใฆใใใใชใฆใธใทใชใชใใซ | 042-123-4026 | 139.4235 | 35.63787 | 810.0 |
S14049 | ๅทๅดๅคงๅธซๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบไธญ็ฌไธไธ็ฎ | ใซใใฌใฏใฑใณใซใฏใตใญใทใซใฏใตใญใฏใใซใผใตใณใใงใฆใก | 044-123-4052 | 139.7327 | 35.53759 | 962.0 |
S14023 | ๅทๅดๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅทๅดๅบๆฌ็บไบไธ็ฎ | ใซใใฌใฏใฑใณใซใฏใตใญใทใซใฏใตใญใฏใใณใใงใฆใใใงใฆใก | 044-123-4037 | 139.7028 | 35.53599 | 1804.0 |
S13018 | ๆธ ็ฌๅบ | 13 | ๆฑไบฌ้ฝ | ๆฑไบฌ้ฝๆธ ็ฌๅธๆพๅฑฑไธไธ็ฎ | ใใฆใญใงใฆใใญใจใปใทใใใคใใคใใใงใฆใก | 042-123-4017 | 139.5178 | 35.76885 | 1220.0 |
S14027 | ๅ่คๆฒขๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็่คๆฒขๅธๅ่คๆฒข | ใซใใฌใฏใฑใณใใธใตใฏใทใใใใใธใตใฏ | 046-123-4041 | 139.4896 | 35.33762 | 1521.0 |
S14021 | ไผๅขๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ไผๅขๅๅธไผๅขๅๅไธ็ฎ | ใซใใฌใฏใฑใณใคใปใใฉใทใคใปใใฉใจใณใใงใฆใก | 046-123-4035 | 139.3129 | 35.40169 | 962.0 |
S14047 | ็ธๆจกๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็็ธๆจกๅๅธๅไปฃ็ฐๅ ญไธ็ฎ | ใซใใฌใฏใฑใณใตใฌใใใฉใทใใจใใญใฏใใงใฆใก | 042-123-4050 | 139.3748 | 35.55959 | 1047.0 |
S12013 | ็ฟๅฟ้ๅบ | 12 | ๅ่็ | ๅ่็็ฟๅฟ้ๅธ่ๅไธไธ็ฎ | ใใใฑใณใใฉใทใใทใทใใพใใคใใใงใฆใก | 047-123-4002 | 140.022 | 35.66122 | 808.0 |
S14042 | ๆฐๅฑฑไธๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฐๅฑฑไธไบไธ็ฎ | ใซใใฌใฏใฑใณใจใณใใใทใใซใฏใทใณใคใใทใฟใใใงใฆใก | 045-123-4047 | 139.6593 | 35.43894 | 1044.0 |
S12030 | ๅ ซๅนกๅบ | 12 | ๅ่็ | ๅ่็ๅธๅทๅธๅ ซๅนกไธไธ็ฎ | ใใใฑใณใคใใซใฏใทใคใฏใฟใตใณใใงใฆใก | 047-123-4005 | 139.924 | 35.72318 | 1162.0 |
S14025 | ๅคงๅๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅคงๅๅธไธๅ็ฐ | ใซใใฌใฏใฑใณใคใใใทใทใขใฏใ | 046-123-4039 | 139.468 | 35.43414 | 1011.0 |
S14045 | ๅๆจๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅๆจๅธไธญ็บไบไธ็ฎ | ใซใใฌใฏใฑใณใขใใฎใทใใซใใงใฆใใใงใฆใก | 046-123-4048 | 139.3651 | 35.44182 | 980.0 |
S12029 | ๆฑ้ๅบ | 12 | ๅ่็ | ๅ่็ๆตฆๅฎๅธๆฑ้ไธไธ็ฎ | ใใใฑใณใฆใฉใคในใทใใฌใทใใคใใใงใฆใก | 047-123-4004 | 139.8968 | 35.65086 | 1101.0 |
S12053 | ้ซๆดฒๅบ | 12 | ๅ่็ | ๅ่็ๆตฆๅฎๅธ้ซๆดฒไบไธ็ฎ | ใใใฑใณใฆใฉใคในใทใฟใซในใดใใงใฆใก | 047-123-4006 | 139.9176 | 35.63755 | 1555.0 |
S14024 | ไธ็ฐๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๅทๅดๅธๅคๆฉๅบไธ็ฐๅไธ็ฎ | ใซใใฌใฏใฑใณใซใฏใตใญใทใฟใใฏใใฟใจใณใใงใฆใก | 044-123-4038 | 139.5424 | 35.6077 | 972.0 |
S14006 | ่ใ่ฐทๅบ | 14 | ็ฅๅฅๅท็ | ็ฅๅฅๅท็ๆจชๆตๅธ้ฝ็ญๅบ่ใ่ฐท | ใซใใฌใฏใฑใณใจใณใใใทใใ ใญใฏใฏใบใฌใค | 045-123-4031 | 139.5633 | 35.53573 | 1886.0 |
์ค๋ช :
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ 'store' ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ 'tel_no' ์ปฌ๋ผ์ด '^[0-9]{3}-[0-9]{3}-[0-9]{3}-[0-9]{4}$' ์ ๊ท ํํ์ ํจํด๊ณผ ์ผ์นํ๋ ๋ ์ฝ๋๋ง ์ ํํ์ฌ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํ๊ณ ์์ต๋๋ค(~ ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค).
์ ๊ท์ ํจํด '^[0-9]{3}-[0-9]{3}-[0-9]{3}-[0-9]{4}$'๋ 'tel_no' ์ด์ ๊ฐ ์ค ##-####-##์ ํ์์ ๊ฐ์ง ์ ํจํ ์ ํ๋ฒํธ๋ฅผ ๋ฐ๋ฅด๋ ๊ฐ๊ณผ ์ผ์นํฉ๋๋ค(๊ฐ #์ ํ ์๋ฆฌ ์ซ์๋ฅผ ๋ํ๋ ๋๋ค). ํจํด์ ^ ๋ฌธ์๋ ๋ฌธ์์ด์ ์์์, $ ๋ฌธ์๋ ๋ฌธ์์ด์ ๋์ ๋ํ๋ด๋ฉฐ {3}๊ณผ {4}๋ ์ ํ ๋ฒํธ์ ๊ฐ ์น์ ์ ํฌํจ๋๋ ์ ํํ ์ซ์ ์๋ฅผ ์ง์ ํ๋ ์๋ํ์์ ๋๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'store' ํ ์ด๋ธ์์ 'tel_no' ์ปฌ๋ผ์ด ์ ํจํ ์ ํ ๋ฒํธ ํ์๊ณผ ์ผ์นํ๋ ๋ชจ๋ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๋ค. ์ด ๋ช ๋ น์ ์ฌ์ฉํ๋ฉด ๋ ธํธ๋ถ ๋ด์์ SQL ์ฝ๋๋ฅผ ์ง์ ์คํํ ์ ์์ต๋๋ค.
S-017: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)๋ฅผ ์๋ ์์ผ(birth_day)์ ๊ธฐ์ค์ผ๋ก ๋์ด์์ผ๋ก ์ ๋ ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฐ์ ํญ๋ชฉ์ ๋ชจ๋ ํ์ํ๋ผ.
%%sql
SELECT * FROM customer ORDER BY birth_day LIMIT 10;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|
CS003813000014 | ๆๅฑฑ ่ใ ็พ | 1 | ๅฅณๆง | 1928-11-26 | 90 | 182-0007 | ๆฑไบฌ้ฝ่ชฟๅธๅธ่้ๅฐ********** | S13003 | 20160214 | 0-00000000-0 |
CS026813000004 | ๅๆ ๆ้ฝ | 1 | ๅฅณๆง | 1928-12-14 | 90 | 251-0043 | ็ฅๅฅๅท็่คๆฒขๅธ่พปๅ ๅ ็บ********** | S14026 | 20150723 | 0-00000000-0 |
CS018811000003 | ็ๆฒข ็พ้ | 1 | ๅฅณๆง | 1929-01-07 | 90 | 204-0004 | ๆฑไบฌ้ฝๆธ ็ฌๅธ้ๅกฉ********** | S13018 | 20150403 | 0-00000000-0 |
CS027803000004 | ๅ ๆ ๆ้ | 0 | ็ทๆง | 1929-01-12 | 90 | 251-0031 | ็ฅๅฅๅท็่คๆฒขๅธ้ต ๆฒผ่คใ่ฐท********** | S14027 | 20151227 | 0-00000000-0 |
CS013801000003 | ๅคฉ้ ๆ้ | 0 | ็ทๆง | 1929-01-15 | 90 | 274-0824 | ๅ่็่นๆฉๅธๅๅๆฑ********** | S12013 | 20160120 | 0-00000000-0 |
CS001814000022 | ้ถด็ฐ ้็ฉ | 1 | ๅฅณๆง | 1929-01-28 | 90 | 144-0045 | ๆฑไบฌ้ฝๅคง็ฐๅบๅๅ ญ้ท********** | S13001 | 20161012 | A-20090415-7 |
CS016815000002 | ๅฑฑๅ ็พ็ด | 1 | ๅฅณๆง | 1929-02-22 | 90 | 184-0005 | ๆฑไบฌ้ฝๅฐ้ไบๅธๆก็บ********** | S13016 | 20150629 | C-20090923-C |
CS009815000003 | ไธญ็ฐ ้็ฉ | 1 | ๅฅณๆง | 1929-04-08 | 89 | 154-0014 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๆฐ็บ********** | S13009 | 20150421 | D-20091021-E |
CS012813000013 | ๅฎ้ ๅๆ | 1 | ๅฅณๆง | 1929-04-09 | 89 | 231-0806 | ็ฅๅฅๅท็ๆจชๆตๅธไธญๅบๆฌ็ง็บ********** | S14012 | 20150712 | 0-00000000-0 |
CS005813000015 | ้่ฐท ๆตๆขจ้ฆ | 1 | ๅฅณๆง | 1929-04-09 | 89 | 165-0032 | ๆฑไบฌ้ฝไธญ้ๅบ้ทบๅฎฎ********** | S13005 | 20150506 | 0-00000000-0 |
์ค๋ช :
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์ฟผ๋ฆฌ๋ฅผ ์ํํ๊ณ ์์ต๋๋ค.
SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ "customer" ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์์ต๋๋ค.
ORDER BY ์ ์ ์ฌ์ฉํ์ฌ "birth_day" ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๊ณ ์๋ค.
LIMIT ์ ์ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'customer' ํ ์ด๋ธ์์ 'birth_day' ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ์ค๋ฆ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ฉด ์ฒ์ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์๋ค.
S-018: ๊ณ ๊ฐ ๋ฐ์ดํฐ(df_customer)๋ฅผ ์๋ ์์ผ(birth_day)์ ๊ธฐ์ค์ผ๋ก ์ ์ ์์๋ก ์ ๋ ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฐ์ ํญ๋ชฉ์ ๋ชจ๋ ํ์ํ๋ผ.
%%sql
SELECT * FROM customer ORDER BY birth_day DESC LIMIT 10;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | customer_name | gender_cd | gender | birth_day | age | postal_cd | address | application_store_cd | application_date | status_cd |
---|---|---|---|---|---|---|---|---|---|---|
CS035114000004 | ๅคงๆ ็พ้ | 1 | ๅฅณๆง | 2007-11-25 | 11 | 156-0053 | ๆฑไบฌ้ฝไธ็ฐ่ฐทๅบๆก********** | S13035 | 20150619 | 6-20091205-6 |
CS022103000002 | ็ฆๅฑฑ ใฏใใ | 9 | ไธๆ | 2007-10-02 | 11 | 249-0006 | ็ฅๅฅๅท็้ๅญๅธ้ๅญ********** | S14022 | 20160909 | 0-00000000-0 |
CS002113000009 | ๆด็ฐ ็ๆ ๅญ | 1 | ๅฅณๆง | 2007-09-17 | 11 | 184-0014 | ๆฑไบฌ้ฝๅฐ้ไบๅธ่ฒซไบๅ็บ********** | S13002 | 20160304 | 0-00000000-0 |
CS004115000014 | ๆพไบ ไบฌๅญ | 1 | ๅฅณๆง | 2007-08-09 | 11 | 165-0031 | ๆฑไบฌ้ฝไธญ้ๅบไธ้ทบๅฎฎ********** | S13004 | 20161120 | 1-20081231-1 |
CS002114000010 | ๅฑฑๅ ้ฅ | 1 | ๅฅณๆง | 2007-06-03 | 11 | 184-0015 | ๆฑไบฌ้ฝๅฐ้ไบๅธ่ฒซไบๅ็บ********** | S13002 | 20160920 | 6-20100510-1 |
CS025115000002 | ๅฐๆณ ๅคๅธ | 1 | ๅฅณๆง | 2007-04-18 | 11 | 245-0018 | ็ฅๅฅๅท็ๆจชๆตๅธๆณๅบไธ้ฃฏ็ฐ็บ********** | S14025 | 20160116 | D-20100913-D |
CS002113000025 | ๅบๆซ ใพใชใฟ | 1 | ๅฅณๆง | 2007-03-30 | 12 | 184-0015 | ๆฑไบฌ้ฝๅฐ้ไบๅธ่ฒซไบๅ็บ********** | S13002 | 20171030 | 0-00000000-0 |
CS033112000003 | ้ท้ ็พ็ด | 1 | ๅฅณๆง | 2007-03-22 | 12 | 245-0051 | ็ฅๅฅๅท็ๆจชๆตๅธๆธๅกๅบๅ็ฌ็บ********** | S14033 | 20150606 | 0-00000000-0 |
CS007115000006 | ็ฆๅฒก ็ฌ | 1 | ๅฅณๆง | 2007-03-10 | 12 | 285-0845 | ๅ่็ไฝๅๅธ่ฅฟๅฟๆดฅ********** | S12007 | 20151118 | F-20101016-F |
CS014113000008 | ็ขๅฃ ่็ท | 1 | ๅฅณๆง | 2007-03-05 | 12 | 260-0041 | ๅ่็ๅ่ๅธไธญๅคฎๅบๆฑๅ่********** | S12014 | 20150622 | 3-20091108-6 |
์ค๋ช :
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์๋ค.
์ด ์ฟผ๋ฆฌ๋ SELECT ๋ฌธ์ ์ฌ์ฉํ์ฌ "customer" ํ ์ด๋ธ์ ๋ชจ๋ ์ปฌ๋ผ์ ์ ํํ๊ณ ์์ต๋๋ค.
ORDER BY ์ ์ ์ฌ์ฉํ์ฌ "birth_day" ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๊ณ ์๋ค.
LIMIT ์ ์ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'customer' ํ ์ด๋ธ์์ 'birth_day' ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ฉด ์ฒ์ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๊ฒ ๋ฉ๋๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๊ณ ์๋ค. ์ด ๋ช ๋ น์ด๋ฅผ ํตํด SQL ์ฝ๋๋ฅผ ๋ ธํธ๋ถ ๋ด์์ ์ง์ ์คํํ ์ ์์ต๋๋ค.
S-019: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์ ๋ํด ๊ฑด๋น ๋งค์ถ ๊ธ์ก(amount)์ด ๋์ ์์๋๋ก ์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฑด์ฉ ํ์ํ๋ค. ํญ๋ชฉ์ ๊ณ ๊ฐ ID(customer_id), ๋งค์ถ ๊ธ์ก(amount), ๋ถ์ฌํ ๋ญํฌ๋ฅผ ํ์ํ๋๋ก ํ๋ค. ๋จ, ๋งค์ถ์ก(amount)์ด ๋์ผํ ๊ฒฝ์ฐ ๋์ผํ ์์๋ฅผ ๋ถ์ฌํ๋ค.
%%sql
SELECT
customer_id,
amount,
RANK() OVER(ORDER BY amount DESC) AS ranking
FROM receipt
LIMIT 10
;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | amount | ranking |
---|---|---|
CS011415000006 | 10925 | 1 |
ZZ000000000000 | 6800 | 2 |
CS028605000002 | 5780 | 3 |
ZZ000000000000 | 5480 | 4 |
ZZ000000000000 | 5480 | 4 |
CS015515000034 | 5480 | 4 |
ZZ000000000000 | 5440 | 7 |
CS021515000089 | 5440 | 7 |
CS020414000081 | 5280 | 9 |
ZZ000000000000 | 5280 | 9 |
์ค๋ช :
์ด ์ฝ๋๋ SQL ์ธ์ด๋ก ์์ฑ๋์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๊ณ ์๋ค.
์ฟผ๋ฆฌ๋ "receipt" ํ ์ด๋ธ์์ "customer_id"์ "amount" ์ปฌ๋ผ์ ์ ํํ๊ณ ์๋ค.
๋ํ RANK()๋ผ๋ ์ฐฝ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ "amount" ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ๊ฐ ๋ ์ฝ๋์ ์์๋ฅผ ๊ณ์ฐํ๋๋ฐ, RANK() ํจ์๋ ๋์ผํ ๊ฐ์๋ ๋์ผํ ์์๋ฅผ ํ ๋นํ๊ณ , ๊ฐ์ง ์์ ๊ฐ์๋ ์์ ์ฌ์ด์ ๊ฐ๊ฒฉ์ ๋์ด ๊ฐ ๋ ์ฝ๋์ ์์๋ฅผ ๊ณ์ฐํ๋ค. ์ฐฝ ํจ์๋ OVER() ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ ์๋๋ฉฐ, ์์๋ฅผ ์ ์ฉํ ์์์ ํํฐ์ ๋๋ ํํฐ๋ง ๊ธฐ์ค์ ์ง์ ํ๋ค.
์ฟผ๋ฆฌ๋ ORDER BY ์ ์ ์ฌ์ฉํ์ฌ "amount" ์ด์ ๊ธฐ์ค์ผ๋ก ๋ด๋ฆผ์ฐจ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ๋ ฌํ๋ค.
์ด ์ฟผ๋ฆฌ๋ AS ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ RANK() ํจ์์ ๊ฒฐ๊ณผ๋ฅผ '์์'๋ผ๋ ๋ณ์นญ์ผ๋ก ์ง์ ํ๋ค.
LIMIT ๊ตฌ๋ฌธ์ ๋ฐํ๋๋ ๋ ์ฝ๋ ์๋ฅผ 10์ผ๋ก ์ ํํ๊ธฐ ์ํด ์ฌ์ฉ๋๋ค.
์ฆ, ์ด ์ฟผ๋ฆฌ๋ 'receipt' ํ ์ด๋ธ์์ ์ฒ์ 10๊ฐ์ ๋ ์ฝ๋๋ฅผ ๋ฐํํ๊ณ , ๊ฐ ๋ ์ฝ๋์๋ 'customer_id', 'amount', 'ranking' ์ปฌ๋ผ์ด ํฌํจ๋๋ฉฐ, 'ranking' ์ปฌ๋ผ์๋ 'amount' ์ปฌ๋ผ์ ๊ธฐ์ค์ผ๋ก ํ ๊ฐ ๋ ์ฝ๋์ ์์ ๊ฐ ๊ธฐ์ฌ๋๋ฉฐ, ๊ฐ์ฅ ๋์ ๊ธ์ก์ ๊ฐ์ง ๋ ์ฝ๋์ ์์๋ 1์ด๋ค.
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ ๋ด์์ SQL ๋งค์ง ๋ช ๋ น '%%sql'์ ์ฌ์ฉํ์ฌ ์คํ๋๋ค. ์ด ๋ช ๋ น์ ํตํด ๋ ธํธ๋ถ ๋ด์์ SQL ์ฝ๋๋ฅผ ์ง์ ์คํํ ์ ์๋ค.
S-020: ์์์ฆ ๋ด์ญ ๋ฐ์ดํฐ(df_receipt)์ ๋ํด ๊ฑด๋น ๋งค์ถ ๊ธ์ก(amount)์ด ๋์ ์์๋๋ก ์์๋ฅผ ๋ถ์ฌํ๊ณ , ๋งจ ์๋ถํฐ 10๊ฑด์ฉ ํ์ํ๋ค. ํญ๋ชฉ์ ๊ณ ๊ฐ ID(customer_id), ๋งค์ถ ๊ธ์ก(amount), ๋ถ์ฌํ ์์๋ฅผ ํ์ํ๋ค. ๋จ, ๋งค์ถ๊ธ์ก(amount)์ด ๋์ผํ ๊ฒฝ์ฐ์๋ ๋ณ๋์ ์์๋ฅผ ๋ถ์ฌํด์ผ ํ๋ค.
%%sql
SELECT
customer_id,
amount,
ROW_NUMBER() OVER(ORDER BY amount DESC) AS ranking
FROM receipt
LIMIT 10
;
* postgresql://padawan:***@db:5432/dsdojo_db 10 rows affected.
customer_id | amount | ranking |
---|---|---|
CS011415000006 | 10925 | 1 |
ZZ000000000000 | 6800 | 2 |
CS028605000002 | 5780 | 3 |
ZZ000000000000 | 5480 | 4 |
CS015515000034 | 5480 | 5 |
ZZ000000000000 | 5480 | 6 |
ZZ000000000000 | 5440 | 7 |
CS021515000089 | 5440 | 8 |
CS001412000160 | 5280 | 9 |
CS020515000102 | 5280 | 10 |
ย
์ค๋ช :
์ด ์ฝ๋๋ Jupyter ๋ ธํธ๋ถ์์ ๋งค์ง ๋ช ๋ น "%%sql"์ ์ฌ์ฉํ์ฌ ์คํ๋๋ SQL ์ฟผ๋ฆฌ์ ๋๋ค.
์ด ์ฟผ๋ฆฌ๋ "recipate" ํ ์ด๋ธ์์ 3๊ฐ์ ์ปฌ๋ผ์ ์ ํํฉ๋๋ค. "customer_id", "amount", ๊ทธ๋ฆฌ๊ณ ์๋ก์ด "ranking" ์ด. "customer_id"์ "amount" ์ด์ ๋จ์ํ๋ฉฐ ์ด ๋ ํ๋์ ๊ฐ๋ง ๊ฐ์ ธ์ค๊ณ , "ranking" ์ด์ ROW_NUMBER()๋ผ๋ window ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์์ฑ๋ ํ์ ์ปฌ๋ผ์ด๋ค.
ROW_NUMBER() ํจ์๋ ์ง์ ๋ ORDER BY ๊ตฌ๋ฌธ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒฐ๊ณผ ์งํฉ์ ๊ฐ ํ์ ๋ํด ๊ณ ์ ํ ์ฐ๋ฒ์ ์์ฑํ๋ค. ์ด ํจ์๋ 'amount' ์ด์ ๊ฐ์ ๊ธฐ์ค์ผ๋ก ๊ฐ ํ์ ์์๋ฅผ ํ ๋นํ๋ ๋ฐ ์ฌ์ฉ๋๋ฉฐ, ORDER BY ๊ตฌ๋ฌธ์ 'amount' ์ด์ ๊ธฐ์ค์ผ๋ก ํ์ ๋ด๋ฆผ์ฐจ์์ผ๋ก ์ ๋ ฌํ์ฌ ๊ฐ์ฅ ๋์ ๊ธ์ก์ด 1์์, ๋ ๋ฒ์งธ๋ก ๋์ ๊ธ์ก์ด 2์์, ์ด๋ ๊ฒ ์์๋ฅผ ์ง์ ํฉ๋๋ค.
AS ํค์๋๋ ์๋ก์ด ์ปฌ๋ผ์ "ranking"์ด๋ผ๋ ๋ณ์นญ์ ๋ถ์ฌํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก LIMIT ๊ตฌ๋ฌธ์ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๊ฐ ๋ฐํํ๋ ํ ์๋ฅผ 10ํ์ผ๋ก ์ ํํ๊ณ ์์ต๋๋ค.
๋ฐ๋ผ์ ์ด ์ฟผ๋ฆฌ์ ๊ฒฐ๊ณผ๋ "customer_id", "amount", "ranking" ์ปฌ๋ผ์ ๊ฐ์ง "receive" ํ ์ด๋ธ์ ์์ 10๊ฐ์ ํ์ ๋ฐํํ๋ฉฐ, "ranking" ์ปฌ๋ผ์๋ "amount" ์ปฌ๋ผ์ ์์์ ๋ฐ๋ผ ๊ฐ ํ์ ํ ๋น๋ ์ฐ๋ฒ์ด ํฌํจ๋์ด ์๊ณ ๊ฐ์ฅ ๋์ ๊ธ์ก์ ๊ฒ์ 'ranking 1'์ด ๋ฉ๋๋ค.
ย
ย
Comment