파란색가운의 개발 블로그
[SQL 고득점 Kit] SELECT - 대장균들의 자식의 수 구하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/299305
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
난이도 : 중 - 중상
어렵다. select 쪽에 서브쿼리를 써보는게 처음이였어서 30분정도 고민하고 그냥 답지 봤다.
SELECT ID,IFNULL((SELECT COUNT(*) FROM ECOLI_DATA GROUP BY PARENT_ID HAVING PARENT_ID = ID),0) AS CHILD_COUNT
FROM ECOLI_DATA
ORDER BY ID ASC
SELECT에 카운트를 쓰긴 써야하는데, 저 카운트를 어떻게 가져와야 하는지를 고민했는데 저런 쿼리를 처음 봐서
IFNULL문까지는 썼는데 잘 해결을 못했다
그래서 해결책 . 만약 저 카운트가 NULL이라면 0으로 대체해주는 IFNULL 함수를 작성해주고
서브쿼리로
SELECT COUNT(*) FROM ECOLI_DATA GROUP BY PARENT_ID HAVING PARENT_ID = ID
PARENT_ID로 그룹을 만들어주고, HAVING절을 통해서 PARENT_ID = ID 조건을 걸어준다
이것을 카운트해주게 되면 PARENT_ID 내에 ID가 몇개 있는지 카운트가 됨
'알고리즘 문제 풀이 > 프로그래머스' 카테고리의 다른 글
[SQL 고득점 Kit] SUM/MAX/MIN - 가격이 제일 비싼 식품의 정보 출력하기 (4) | 2024.07.07 |
---|---|
[SQL 고득점 Kit] SELECT - 대장균의 크기에 따라 분류하기 1 (0) | 2024.07.07 |
[SQL 고득점 Kit] SELECT - 특정 물고기를 잡은 총 수 구하기 (0) | 2024.07.04 |
[SQL 고득점 Kit] SELECT - 가장 큰 물고기 10마리 구하기 (0) | 2024.07.03 |
[SQL 고득점 Kit] SELECT - 잔챙이 잡은 수 구하기 (0) | 2024.07.03 |