inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[백문이불여일타] 데이터 분석을 위한 고급 SQL

서브쿼리

데이터가 기록이 되지 않은 경우는 어떻게 해결하나요?

해결된 질문

419

헬로월드

작성한 질문수 20

1

안녕하세요

6분 25초경' 데이터가 없는 경우 해결방법'에 대한 질문입니다.

date열의 값이 NULL이라면 다른 질문에서 답변해 주신 대로 ISNULL() 혹은 COALESCE() 함수를 사용하면 될 것 같은데요.

수업에서의 예시처럼 행(레코드) 자체가 기록이 되지 않은 경우라면 어떻게 해결해야하나요?

sql

답변 1

2

송혜정

안녕하세요 헬로월드님, 강의 속 예시를 이용해서 답변 드립니다.

1. 데이터 자체가 기록이 되지 않을 때 쿼리로 집계를 해야한다면, 기준이 되는 테이블을 이용하여 left 또는 right join을 하여 임의로 null값을 만들어줄 수 있을 것입니다.
모든 날짜가 들어있는 테이블을 만들고 해당 테이블에 crimes 테이블을 LEFT JOIN 하면, 범죄가 없었던 1월 6일에 null 값이 생기도록 해볼 수 있겠네요.

2. 혹은 AVG(daily_stats.incidents_daily)를 하지않고 SUM과 COUNT를 이용해서 직접 평균을 구해볼 수도 있을 것입니다.
분자에는 당연히 SUM(daily_stats.incidents_daily)가 들어가야 합니다. 하지만 분모는 단순히 COUNT(distinct date)를 하는 것이 아니라, date 컬럼에서 가장 최소 날짜와 최대 날짜의 차이를 구하는, 즉 DATEDIFF(max(date), min(date)) + 1 과 같이 해볼 수 있을 것입니다. DATEDIFF는 날짜간의 차이를 구하는 함수로, 같은 날 끼리의 차이는 0으로 집계됩니다. 따라서 +1을 해야 7이 출력되는 점 참고해주세요.

근본적으로, 실무에서 필요한 데이터가 쌓이지 않는다면 해당 데이터가 쌓일 수 있도록 엔지니어링적인 도움이 필요할 것입니다. 하지만 쿼리를 작성하는 데에서 약간의 트릭이 필요한 경우라면, 위와 같은 방식을 시도해 볼 수 있겠네요. 말씀드린 방법이 절대적인 정답은 아니고, 헬로월드님이 직접 쿼리를 작성하시면서 더 좋은 방법을 찾아보실 수 있을 것이라고 생각합니다 :)

0

헬로월드

답변 감사합니다. 많은 도움 되었습니다!

순위 함수 연습 문제 - 스테디셀러 작가 찾기

0

99

1

문제 내용이 잘못된 것 같습니다.

0

72

2

서브쿼리 질문

0

74

2

[수업질문] 서브쿼리 > null데이터 avg사용 주의

0

84

1

서브쿼리는 언제 작성하는건가요?

0

85

1

안녕하세요 질문드립니다.

0

71

2

Top Earners 문제관련 질문

0

100

2

고급반 cheetsheet

0

164

2

196. Delete Duplicate Emails 좋은 코드 질문

0

145

1

a.id = 1과 b.id=1이 없어도 되는 이유

0

133

0

강의 플랫폼

0

203

3

리트코드 177번 function 풀이중 case when 활용을 위한 서브쿼리 구문을 제출 시 검증에 통과되지 않도록 보강된 듯 하네요

0

213

2

ERD 읽는법에 추가 질문 있어요

0

258

1

lead, lag로 풀이할 시 id 값이 존재하지 않는 경우의 오답

0

368

2

사용자정의함수

0

233

1

이 문제 inner join이 이해가 안됩니다.

0

302

1

평균 함수 사용할 때 주의점과 해결법

0

266

1

196. subquery로 풀 때, 궁금한 점

0

391

2

쿼리성능 질문드립니다.

0

318

1

리트코드 highest department salary 문제

0

264

2

The report 문제 order by부분 질문

0

272

2

리트코드 서브쿼리 문제 질문

0

423

1

DEPARTMENT HIGHEST SALARY 서브쿼리 문제 문의

0

243

1

서브쿼리의 활용사례 및 조인관련질문

0

292

1