WITH front_end AS (SELECT SUM(CODE)
FROM SKILLCODES
WHERE CATEGORY = 'Front End')
SELECT CASE
WHEN SKILL_CODE & (SELECT * FROM front_end)
AND SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'python')
THEN 'A'
WHEN SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#')
THEN 'B'
WHEN SKILL_CODE & (SELECT * FROM front_end)
THEN 'C'
END AS GRADE, ID, EMAIL
FROM DEVELOPERS
GROUP BY GRADE, ID, EMAIL
HAVING GRADE IS NOT NULL
ORDER BY GRADE, ID
안녕하세요! 혹시 with 절에서 sum(code)인 이유가 있을까요? 저는 code로 했을 때 틀렸는데 이유가 궁금해서요!
안녕하세요! 늦게 봐서 답변이 늦었네요 ㅠㅠ 해당 코드를 이해하시기 위해서는 2진법과 '&' 연산에 대해 학습해보시면 알 수 있으실 겁니다! 그리고 테이블에서 CODE가 2의 제곱수로 표현되어 있기에 SUM으로 해도 가능한 것입니다!
이 코드대로 하면, 테스트케이스는 다 통과하는데 틀렸다고 나오네요ㅠㅠ 틀린 부분이 없어보이는데.. 왜그럴까요
C# 스킬 가진 개발자 b는 카테고리가 백엔드인데 왜 WITH절에 프론트엔드로 설정하는건가요?ㅠㅠㅠㅠ