Devin.KR

SQL 조회와 일별 집계

원본 교통 표를 필터링하고 일별 비교 표를 만듭니다.

진도 0%

레슨

  1. 행과 열 선택

    교통 표에서 날짜·지역·통행량을 선택하고 결과 열과 정렬 순서를 고정합니다.

  2. 기간과 NULL 필터

    기간 경계와 NULL을 포함한 교통 표에서 분석 대상 행만 반환합니다.

  3. 지역별 합계와 건수

    지역·날짜별 SUM·COUNT와 NULL 제외 건수를 계산합니다.

  4. 집계값을 원본과 대조

    일별 집계 SQL을 파일로 저장하고 작은 원본 표본의 손계산 결과와 비교합니다.

SQL 조회와 일별 집계 결과물 통합

m01-data-contract의 검증된 solution을 시작 ZIP에 포함합니다. 합성 원본 7행을 보존하고 완전 일치 중복을 제거한 SQLite 조회용 뷰에서 지역·날짜별 교통 집계와 대조 자료를 만듭니다.

요구사항

  • 이전 raw·source·dictionary·question·audit와 계약 테스트를 보존합니다. CSV 빈칸은 NULL, 0은 정수로 적재합니다.
  • queries/daily.sql은 traffic_unique에서 A/B, 2026-09-01~03 양 끝 포함으로 집계합니다. 지역·날짜 오름차순, total_vehicles와 valid_observations를 출력합니다.
  • python3 pipeline.py로 daily.csv를 생성합니다. 동일 행은 하나만 유지하고 같은 키의 값 충돌은 KEY 오류로 거부합니다.
  • 원본 470대와 중복 제거 후 390대의 차이 80대를 설명합니다. 미관측 그룹은 합계 빈칸·유효 관측 0으로 유지합니다.

완료 기준

  • python3 -m unittest discover -s tests -v: 기존 계약 10개와 SQL 확장 9개 통과, starter는 합계 검사 일부 실패합니다.
  • 기간 시작/종료·기간 밖·대상 밖·NULL·0·빈 표·중복·키 충돌 fixture를 검사합니다.
  • daily.csv 6행, 합계390·유효관측5. 같은 정책의 원본과 합계가 일치하며 재실행 출력과 원본 바이트가 같습니다.
python3 -m unittest discover -s tests -v
미션 시작 코드
모범 답안모범 답안 내려받기

검토 기준

  • 판단 근거와 제외 조건을 데이터와 연결해 설명합니다.
  • 앞 단계 산출물을 재사용하고 원본을 보존합니다.