2025-10-04 학습 기록

랏 뜨·2025년 10월 4일

🦾 오늘의 컨디션 및 특이사항(개인 일정 등)


  • 수면 시간
    • 6시간
  • 학습 시간
    • 10 : 30 ~ 14 : 00
    • 22 : 00 ~ 00 : 00
  • 특이사항

📑 세부 학습 내용


📅 스케쥴

  • 3시간 30분 강의 + 궁금한 개념 조사 및 학습 + 2시간 코딩테스트 및 풀이 리뷰
  • 5시간 30분

📺 인프런 강의

📺 김영한의 실전 데이터베이스 - 기본편 (김영한)

  • 데이터를 처리하기 위한 SQL 문법을 확실하게 마스터하는 것과 더불어, 특히 조인 및 인덱스의 정의 및 올바른 사용 방법을 확실하게 이해하여 쿼리 성능을 최적화 - 극대화할 수 있는 개발자로 성장하고, 추가로 데이터베이스에서의 트랜잭션 관련도 더 확실하게 이해하여 DB 쿼리 성능을 최대한 최적화 할 수 있는 성능에 민감한 개발자를 목표로 학습 시작
  • 45. 뷰(View) 소개 ~ 57. 인덱스와 LIKE 범위 검색 까지 학습 완료
  • 과정의 모든 내용 이해 및 실습 완료
  • 강의 내 퀴즈 모두 풀이 및 오답노트
  • 강의에 없는 내용 중 이해가 안 되거나 궁금한 부분은 따로 추가 학습 진행
  • 이전 내용 중 헷갈리는 부분 복습하면서 진행

✏️ 코딩 테스트

⭕ 풀이 코드

WITH recursive jt AS (
    SELECT id, parent_id, 1 AS generation
    FROM ecoli_data
    WHERE parent_id IS NULL
    UNION ALL
    SELECT ne.id, ne.parent_id, jt.generation + 1
    FROM ecoli_data ne
    JOIN jt ON jt.id = ne.parent_id
),

njt AS (
    SELECT pe.id
    FROM ecoli_data pe
    LEFT JOIN ecoli_data ce ON pe.id = ce.parent_id
    WHERE ce.id IS NULL
)

SELECT COUNT(jt.generation) as COUNT, jt.generation AS GENERATION
FROM jt
JOIN njt ON jt.id = njt.id
GROUP BY jt.generation
ORDER BY jt.generation ASC;
  • 재귀 CTE 를 이용해 해결
    • WITH recursive {tableName} AS {query} 구문을 통해 재귀 CTE 생성 : jt
      • 각 세대별 자식이 있는 노드 ID 분리 및 획득
    • 단순 서브쿼리를 담고 있는 CTE 추가 생성 : njt
      • 자식이 없는 노드 ID 획득
    • 두 테이블을 모두 이용하여 GROUP BY jt.GENERATION 으로 세대별 COUNT 쿼리 실행

💡 어려웠던 것 || 알게 된 것


  • 금일은 없음
profile
기록

0개의 댓글