2024. 6. 3. 23:59ㆍ회고/TIL(매일)
✏️도전한 점
1. 데이터분석 아티클 스터디 준비
2. 알쿼리즘 쿼리 스터디 준비
01 아티클 스터디
🔎아티클 스터디: AutoML의 한계와 미래
1. 오늘의 아티클(주제) 스마트하게 머신러닝 적용하는 법: ②AutoML의 한계와 미래 | 요즘IT1부에서는 AutoML이란 무엇인지, AutoML이 가진 장점과 주목받는 이유를 살펴봤습니다. 하지만 AutoML의 목
specialda.tistory.com
💡후기: AI를 활용한 머신러닝 자동화의 한계점과 그럼에도 불구하고 무한한 가능성을 지닌 AutoML에 대해 알 수 있었다.
02 쿼리 스터디
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
<정답 코드>
SELECT INFO.ITEM_ID, ITEM_NAME, RARITY
FROM ITEM_INFO AS INFO
JOIN ITEM_TREE AS TREE
ON INFO.ITEM_ID = TREE.ITEM_ID
WHERE INFO.ITEM_ID NOT IN
(
SELECT DISTINCT PARENT_ITEM_ID
FROM ITEM_TREE
WHERE PARENT_ITEM_ID IS NOT NULL
)
ORDER BY INFO.ITEM_ID DESC
🕒문제 발생: NOT IN 다음에 리스트나 서브쿼리가 나와야 한다. 처음에 서브쿼리에 조건 WHERE절을 주지 않았다. IN을 했을 때는 바랐던 결과가 잘 나오더니 NOT IN을 하면 빈값이 나왔다. 문제는 서브쿼리로 만든 리스트 내에 NULL값이 포함됐기 때문이었다.
🔎문제 원인: SQL에서 NOT IN 절에 NULL 값이 포함되어 있을 경우, 예상치 못한 결과가 발생할 수 있다. NOT IN이 내부적으로 각 항목에 대해 <>(같지 않음) 연산을 수행하는데, SQL에서는 NULL과의 비교가 항상 UNKNOWN을 반환하기 때문이다. 결과적으로, NULL 값을 포함한 리스트와의 NOT IN 비교는 빈 결과를 반환할 수 있다.
💡문제 해결: <정답 코드>와 같이 서브쿼리 내에 ID IS NOT NULL 조건은 NULL 값이 NOT IN 절의 리스트에 포함되지 않도록 보장한다.
03 인사이트
- NOT IN 연산자는 리스트 또는 서브쿼리가 필요하다.
- NOT IN 연산자 다음에 단일 컬럼을 바로 사용할 수 없다.
- 따라서, 서브쿼리를 사용하여 PARENT_ITEM_ID 값을 리스트 형태로 반환해야 한다.
'회고 > TIL(매일)' 카테고리의 다른 글
TIL 155일차: 추천 시스템의 베스트 셀러에 대해서 (0) | 2024.06.05 |
---|---|
TIL 154일차: 기술 통계 (0) | 2024.06.04 |
TIL 152일차: 딕셔너리, Counter()로 같은 기능 구현 (0) | 2024.05.31 |
TIL 151일차 (0) | 2024.05.29 |
TIL 150일차 (0) | 2024.05.27 |