๐ป ์ธ์ด๋ณ ๊ฐ๋ฐ์ ๋ถ๋ฅํ๊ธฐ
https://school.programmers.co.kr/learn/courses/30/lessons/276036
ํ๋ก๊ทธ๋๋จธ์ค
SW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก์ Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํ
programmers.co.kr
๐ ๋ฌธ์ ๊ฐ์
๋ ํ
์ด๋ธ์ด ์์ด์!
SKILLCODES๋ ๊ฐ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด(์คํฌ)์ ์ด๋ฆ, ์นดํ
๊ณ ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ 2์ง์๋ก ๊ตฌ๋ถ ๊ฐ๋ฅํ ์ฝ๋๊ฐ ๋ด๊ฒจ์๊ณ ,
DEVELOPERS๋ ๊ฐ๋ฐ์ ๊ฐ์ธ ์ ๋ณด์ ๊ทธ ๊ฐ๋ฐ์๊ฐ ๊ฐ์ง ์ฌ๋ฌ ์คํฌ์ SKILL_CODE
๋ผ๋ ์ซ์(๋นํธ ์กฐํฉ)๋ก ํํํด์.
๐ ํ ์ด๋ธ ์ค๋ช
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 |
ID | FIRST_NAME | LAST_NAME | 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 | |
---|---|---|
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 ์งค ๋ ๊ฐ๋์ ์ด๋ ๊ฒ ๋นํธ ๋จ์ ์ฐ์ฐ์ผ๋ก ๊น๋ํ๊ฒ ์ฒ๋ฆฌํ๋ ํธ๋ฆญ, ํ ๋ฒ์ฉ ์จ๋จน์ด๋ด์.
๊ถ๊ธํ ์ ์์ผ๋ฉด ์ธ์ ๋ ์ง๋ฌธํด์ค~ ๐
๋๊ธ