๐Ÿ’ป Coding/[Algorithm]SQL

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค | 3์›”์— ํƒœ์–ด๋‚œ ์—ฌ์„ฑ ํšŒ์› ๋ชฉ๋ก ์ถœ๋ ฅํ•˜๊ธฐ โญโญ - SQL

๐Ÿฉท ๋ฏผ์˜ 2024. 9. 30. 23:23

๐Ÿ—’๏ธ ๋ฌธ์ œ

https://school.programmers.co.kr/learn/courses/30/lessons/131120

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

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

programmers.co.kr

 

๐Ÿ’ก์กฐ๊ฑด

## MEMBER_PROFILE  : ํšŒ์›์ •๋ณด

## ์ƒ์ผ์ด 3์›”์ธ ์—ฌ์„ฑ ํšŒ์›์˜ ID, ์ด๋ฆ„, ์„ฑ๋ณ„, ์ƒ๋…„์›”์ผ ์กฐํšŒ
## ์ „ํ™”๋ฒˆํ˜ธ = NULL -> ์ถœ๋ ฅ๋Œ€์ƒ ์ œ์™ธ
## ํšŒ์› ID ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
## ๋ฐ์ดํŠธ ํฌ๋งท์ด ์˜ˆ์‹œ์™€ ๋™์ผ

 

โœ๏ธ ๋‚ด ์ฝ”๋“œ

## MEMBER_PROFILE  : ํšŒ์›์ •๋ณด

## ์ƒ์ผ์ด 3์›”์ธ ์—ฌ์„ฑ ํšŒ์›์˜ ID, ์ด๋ฆ„, ์„ฑ๋ณ„, ์ƒ๋…„์›”์ผ ์กฐํšŒ
## ์ „ํ™”๋ฒˆํ˜ธ = NULL -> ์ถœ๋ ฅ๋Œ€์ƒ ์ œ์™ธ
## ํšŒ์› ID ๊ธฐ์ค€ ์˜ค๋ฆ„์ฐจ์ˆœ ์ •๋ ฌ
## ๋ฐ์ดํŠธ ํฌ๋งท์ด ์˜ˆ์‹œ์™€ ๋™์ผ

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, "%Y-%m-%d") AS DATE_OF_BIRTH FROM MEMBER_PROFILE
WHERE TLNO IS NOT NULL 
  # AND DATE_OF_BIRTH BETWEEN 'YYYY-03-01' AND 'YYYY-03-31'
  AND MONTH(DATE_OF_BIRTH) = 3 
  AND GENDER = "W"
ORDER BY MEMBER_ID

๐Ÿ“’WHERE์ ˆ ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ถ”์ถœ

1. ์—ฐ๋„ ์ถ”์ถœ(YEAR)

SELECT * FROM(ํ…Œ์ด๋ธ”) WHERE YEAR(์ปฌ๋Ÿผ๋ช…) = "์ถ”์ถœํ•  ์—ฐ๋„"

 

2. ์›” ์ถ”์ถœ(MONTH)

SELECT * FROM(ํ…Œ์ด๋ธ”) WHERE MONTH (์ปฌ๋Ÿผ๋ช…) = "์ถ”์ถœํ•  ์›”"

 

3. ์ผ ์ถ”์ถœ(DAYOFMONTH)

SELECT * FROM(ํ…Œ์ด๋ธ”) WHERE DAYOFMONTH (์ปฌ๋Ÿผ๋ช…) = "์ถ”์ถœํ•  ์ผ"

 

๐Ÿ˜Š ์˜ค๋Š˜์˜ ํ›„๊ธฐ

์ž๊ธฐ์ „์— SQL ํ•œ๋ฌธ์ œ ํ’€๊ณ  ๋ˆ„์›Œ์•ผ์ง€ ํ–ˆ๋‹ค๊ฐ€ ์ƒˆ๋กœ์šด ๋‚ด์šฉ์„ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

'์ƒ์ผ์ด 3์›”' ์ธ ์กฐ๊ฑด์—์„œ ๋ง‰ํ˜”์—ˆ๋‹ค.

where ์ ˆ์—์„œ between์„ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋  ์ค„ ์•Œ์•˜๋Š”๋ฐ ํ•ด๊ฒฐ์ด ์•ˆ ๋๋‹ค.

์„œ์น˜๋ฅผ ํ†ตํ•ด ์•Œ์•„๋ณด๋‹ˆ `MONTH(DATE_OF_BIRTH) = 3 ` ์ด๋Ÿฐ ๋ฌธ๋ฒ•์ด ์žˆ์—ˆ๋‹ค.

 

์žŠ๊ธฐ์ „์— ๋‚ ์งœ ๋ฐ์ดํ„ฐ ์ถ”์ถœ ๋ฌธ๋ฒ• ์ •๋ฆฌํ•˜๊ธฐ