๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿงฉ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/๐Ÿฌ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(SQL)

์กฐ๊ฑด์— ๋งž๋Š” ํšŒ์› ์ˆ˜ ๊ตฌํ•˜๊ธฐ

by carrot0911 2024. 11. 7.

๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ์€ ์–ด๋А ์˜๋ฅ˜ ์‡ผํ•‘๋ชฐ์— ๊ฐ€์ž…ํ•œ ํšŒ์› ์ •๋ณด๋ฅผ ๋‹ด์€ USER_INFO ํ…Œ์ด๋ธ”์ž…๋‹ˆ๋‹ค. USER_INFO ํ…Œ์ด๋ธ”์€ ์•„๋ž˜์™€ ๊ฐ™์€ ๊ตฌ์กฐ๋กœ ๋˜์–ด์žˆ์œผ๋ฉฐ USER_IDGENDERAGEJOINED๋Š” ๊ฐ๊ฐ ํšŒ์› ID, ์„ฑ๋ณ„, ๋‚˜์ด, ๊ฐ€์ž…์ผ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

Column name Type Nullable
USER_ID INTEGER FALSE
GENDER TINYINT(1) TRUE
AGE INTEGER TRUE
JOINED DATE FALSE

GENDER ์ปฌ๋Ÿผ์€ ๋น„์–ด์žˆ๊ฑฐ๋‚˜ 0 ๋˜๋Š” 1์˜ ๊ฐ’์„ ๊ฐ€์ง€๋ฉฐ 0์ธ ๊ฒฝ์šฐ ๋‚จ์ž๋ฅผ, 1์ธ ๊ฒฝ์šฐ๋Š” ์—ฌ์ž๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

๋ฌธ์ œ

USER_INFO ํ…Œ์ด๋ธ”์—์„œ 2021๋…„์— ๊ฐ€์ž…ํ•œ ํšŒ์› ์ค‘ ๋‚˜์ด๊ฐ€ 20์„ธ ์ด์ƒ 29์„ธ ์ดํ•˜์ธ ํšŒ์›์ด ๋ช‡ ๋ช…์ธ์ง€ ์ถœ๋ ฅํ•˜๋Š” SQL๋ฌธ์„ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”.

์˜ˆ์‹œ

์˜ˆ๋ฅผ ๋“ค์–ด USER_INFO ํ…Œ์ด๋ธ”์ด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค๋ฉด

USER_ID GENDER AGE JOINED
1 1 26 2021-10-05
2 0 NULL 2021-11-25
3 1 22 2021-11-30
4 0 31 2021-12-03
5 0 28 2021-12-16
6 1 24 2022-01-03
7 1 NULL 2022-01-09

2021๋…„์— ๊ฐ€์ž…ํ•œ ํšŒ์› ์ค‘ ๋‚˜์ด๊ฐ€ 20์„ธ ์ด์ƒ 29์„ธ ์ดํ•˜์ธ ํšŒ์›์€ USER_ID ๊ฐ€ 1, 3, 5 ์ธ ํšŒ์›๋“ค ์ด๋ฏ€๋กœ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

SELECT COUNT(*)
FROM USER_INFO
WHERE JOINED LIKE '2021%' AND AGE BETWEEN 20 AND 29;

์ฝ”๋“œ ์„ค๋ช…

  • SELECT COUNT(*) : ์กฐ๊ฑด์— ๋งž๋Š” ํšŒ์›์ด ๋ช‡ ๋ช…์ธ์ง€ ๊ตฌํ•œ๋‹ค.
  • FROM USER_INFO : USER_INFO ํ…Œ์ด๋ธ”์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • WHERE JOINED LIKE '2021%' AND AGE BETWEEN 20 AND 29
    • JOINED ์ปฌ๋Ÿผ์—์„œ 2021๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”๋‹ค.
    • AGE๊ฐ€ 20๋ถ€ํ„ฐ 29 ์‚ฌ์ด์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฐพ๋Š”๋‹ค.
    • AND ์กฐ๊ฑด์„ ์ด์šฉํ•ด์„œ ๋‘ ์กฐ๊ฑด ๋ชจ๋‘ ๋งŒ์กฑํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์„ ํƒํ•œ๋‹ค.