๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
MYSQL

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค LV.04] MYSQL ์–ธ์–ด๋ณ„ ๊ฐœ๋ฐœ์ž ๋ถ„๋ฅ˜ํ•˜๊ธฐ

by hello_world.cpp 2025. 5. 19.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ป ์–ธ์–ด๋ณ„ ๊ฐœ๋ฐœ์ž ๋ถ„๋ฅ˜ํ•˜๊ธฐ

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

 

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

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก์˜ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๐Ÿ“Œ ๋ฌธ์ œ ๊ฐœ์š”

๋‘ ํ…Œ์ด๋ธ”์ด ์žˆ์–ด์š”!
SKILLCODES๋Š” ๊ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด(์Šคํ‚ฌ)์˜ ์ด๋ฆ„, ์นดํ…Œ๊ณ ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  2์ง„์ˆ˜๋กœ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๊ฐ€ ๋‹ด๊ฒจ์žˆ๊ณ ,
DEVELOPERS๋Š” ๊ฐœ๋ฐœ์ž ๊ฐœ์ธ ์ •๋ณด์™€ ๊ทธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐ€์ง„ ์—ฌ๋Ÿฌ ์Šคํ‚ฌ์„ SKILL_CODE๋ผ๋Š” ์ˆซ์ž(๋น„ํŠธ ์กฐํ•ฉ)๋กœ ํ‘œํ˜„ํ•ด์š”.

๐Ÿ“š ํ…Œ์ด๋ธ” ์„ค๋ช…

SKILLCODES ํ…Œ์ด๋ธ”
NAME CATEGORY CODE
C++ Back End 4
JavaScript Front End 16
Java Back End 128
Python Back End 256
C# Back End 1024
React Front End 2048
Vue Front End 8192
Node.js Back End 16384
DEVELOPERS ํ…Œ์ด๋ธ”
ID FIRST_NAME LAST_NAME EMAIL SKILL_CODE
D165 Jerami Edwards jerami_edwards@grepp.co 400
D161 Carsen Garza carsen_garza@grepp.co 2048
D164 Kelly Grant kelly_grant@grepp.co 1024
D163 Luka Cory luka_cory@grepp.co 16384
D162 Cade Cunningham cade_cunningham@grepp.co 8452

๐Ÿ” ๋ฌธ์ œ ์š”๊ตฌ์‚ฌํ•ญ

๊ฐœ๋ฐœ์ž๋“ค์„ GRADE๋กœ ๋ถ„๋ฅ˜ํ•ด์•ผ ํ•ด์š”. ์กฐ๊ฑด์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”:

  • A : Front End ์Šคํ‚ฌ + Python ์Šคํ‚ฌ ๋ชจ๋‘ ๊ฐ–๊ณ  ์žˆ๋Š” ๊ฐœ๋ฐœ์ž
  • B : C# ์Šคํ‚ฌ ๊ฐ€์ง„ ๊ฐœ๋ฐœ์ž
  • C : ๊ทธ ์™ธ์˜ Front End ๊ฐœ๋ฐœ์ž

๊ทธ๋ฆฌ๊ณ  ๊ฒฐ๊ณผ๋Š” GRADE์™€ ID ์˜ค๋ฆ„์ฐจ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ๋ณด์—ฌ์ค˜์•ผ ํ•ฉ๋‹ˆ๋‹ค.

โœจ ํ•ต์‹ฌ ์•„์ด๋””์–ด (ํฌ์ธํŠธ!)

  • ๊ฐœ๋ฐœ์ž ์Šคํ‚ฌ์€ ์ˆซ์ž ํ•˜๋‚˜์— ์—ฌ๋Ÿฌ ์Šคํ‚ฌ์„ ๋น„ํŠธ ๋‹จ์œ„๋กœ ์••์ถ•ํ•ด ๋†“์€ ์ƒํƒœ
  • ๋น„ํŠธ AND(&) ์—ฐ์‚ฐ์„ ์‚ฌ์šฉํ•ด์„œ, ํŠน์ • ์Šคํ‚ฌ(๋น„ํŠธ)๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š”์ง€ ์ฒดํฌ ๊ฐ€๋Šฅ!
  • SKILLCODES ํ…Œ์ด๋ธ”์—์„œ ํ•„์š”ํ•œ ์Šคํ‚ฌ ์ฝ”๋“œ๋งŒ ๋ฝ‘์•„์„œ, ์กฐ๊ฑด์— ๋งž๊ฒŒ ๋ถ„๋ฅ˜ํ•˜๋ฉด ๋!

๐Ÿ’ก SQL ํ’€์ด๋ฒ•


SELECT GRADE, ID, EMAIL
FROM (
  SELECT
    CASE
      WHEN (SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'Python')) > 0
           AND (SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY = 'Front End')) > 0
      THEN 'A'
      WHEN (SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#')) > 0
      THEN 'B'
      WHEN (SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY = 'Front End')) > 0
      THEN 'C'
    END AS GRADE,
    ID,
    EMAIL
  FROM DEVELOPERS
) AS T
WHERE GRADE IS NOT NULL
ORDER BY GRADE, ID;

โœ”๏ธ ๊ฒฐ๊ณผ ์˜ˆ์‹œ

GRADE ID EMAIL
A D162 cade_cunningham@grepp.co
A D165 jerami_edwards@grepp.co
B D164 kelly_grant@grepp.co
C D161 carsen_garza@grepp.co

๐Ÿ“ ๋งˆ๋ฌด๋ฆฌ

์ด ๋ฌธ์ œ๋Š” ๋น„ํŠธ ์—ฐ์‚ฐ ๊ฐœ๋…์ด๋ž‘, SQL ์„œ๋ธŒ์ฟผ๋ฆฌ๋ฅผ ์ž˜ ๊ฒฐํ•ฉํ•ด์„œ ํ’€๋ฉด ํ›จ์”ฌ ์‰ฝ๊ณ  ๊น”๋”ํ•ด์š”!
ํŠนํžˆ "ํŠน์ • ์Šคํ‚ฌ ์žˆ๋Š”์ง€ ๋น„ํŠธ๋กœ ์ฒดํฌ"ํ•˜๋Š” ๊ฐ๊ฐ์ด ์ต์ˆ™ํ•ด์ง€๋ฉด, ์ด๋Ÿฐ ๋ฌธ์ œ๋Š” ๊ฑ ๊ฒŒ์ž„์ฒ˜๋Ÿผ ํ’€ ์ˆ˜ ์žˆ๋‹ต๋‹ˆ๋‹ค โœŒ๏ธ

์•ž์œผ๋กœ๋„ ์‹ค๋ฌด์—์„œ ์ด๋Ÿฐ ์‹์œผ๋กœ ์—ฌ๋Ÿฌ ํ”Œ๋ž˜๊ทธ๋‚˜ ํƒœ๊ทธ๋ฅผ ๋น„ํŠธ๋งˆ์Šคํ‚นํ•ด์„œ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์œผ๋‹ˆ, ๊ผญ ์ตํ˜€๋‘๋ฉด ์ข‹์•„์š”!
SQL ์งค ๋•Œ ๊ฐ€๋”์€ ์ด๋ ‡๊ฒŒ ๋น„ํŠธ ๋‹จ์œ„ ์—ฐ์‚ฐ์œผ๋กœ ๊น”๋”ํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜๋Š” ํŠธ๋ฆญ, ํ•œ ๋ฒˆ์”ฉ ์จ๋จน์–ด๋ด์š”.

๊ถ๊ธˆํ•œ ์  ์žˆ์œผ๋ฉด ์–ธ์ œ๋“  ์งˆ๋ฌธํ•ด์ค˜~ ๐Ÿ‘

728x90
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€