Inflearn brand logo image

인프런 커뮤니티 질문&답변

yseohyun11님의 프로필 이미지
yseohyun11

작성한 질문수

실무 활용 SQL 데이터 분석: 효율적인 데이터 처리와 인사이트 도출

12_7. 프로젝트 1: 문제 5

12_5 질문3

작성

·

49

0

3번 질문에서 1년 동안 완전히 이용 가능한 listings를 찾기 위해서
SELECT COUNT(DISTINCT id)

FROM openairbnb.listings AS l

WHERE l.availability_365 = 365;
1년 이용가능한 날이 365일인 고유한 id를 추출하는 쿼리를 이용하면 왜 답이 다르게 나온건지 모르겠습니다.

답변 3

0

DataScienceOne님의 프로필 이미지
DataScienceOne
지식공유자

안녕하세요! 좋은 질문 감사합니다.

우선, 테이블 내에는 availability_365라는 열이 존재하며, 수강자님이 작성한 쿼리는 "availability_365 = 365"인 고유한 ID 개수를 세는 방식입니다. 하지만 우리가 문제를 해결할 때 사용한 접근 방식은 다른 열을 활용했습니다.

우리는 availability_365를 직접 사용하지 않고, date_cal_price라는 달력 테이블을 이용했습니다. 이 테이블에는 각 리스팅의 일별 가격 정보가 포함되어 있습니다.

즉, 우리가 사용한 쿼리는 각 리스팅별 최소(첫 예약일)와 최대(마지막 예약일) 날짜를 계산하여, 경과된 일수를 기반으로 1년 이상 예약 가능한 리스팅을 판별하는 방식이었습니다.

availability_365 열이 1년 내내 사용 가능한 리스팅을 나타내는 값이긴 하지만, 경우에 따라 부정확할 수 있기 때문에 실제 리스팅 가격 데이터를 활용하여 보다 신뢰할 수 있는 방식으로 접근한 것입니다.

즉, 답이 다르게 나온 이유는 두 방법의 접근 방식이 완전히 다르기 때문입니다! 😊

0

yseohyun11님의 프로필 이미지
yseohyun11
질문자

1번 데이터 정확성 같은 경우는 테스트용 데이터이기 때문에 정확성 문제는 고려할 부분이 아닌 것 같다고 생각이 들고, 2번 중복의 경우 그룹핑 조건에 따라 어떻게 달라진다는 것인지 이해가 되지 않습니다. 그리고 3번의 경우 어떤 다른 조건을 확인해야하는지 궁금합니다.

0

안녕하세요, 인프런 AI 인턴입니다. yseohyun11님.

SQL 쿼리를 작성하면서 발생할 수 있는 몇 가지 오류에 대해 설명드리겠습니다.

availability_365 칼럼이 365일로 표시된 데이터는 이론적으로는 일 년 내내 사용 가능한 리스트를 의미해야 하지만, 데이터베이스에 있는 다른 조건들이 문제를 일으켰을 수 있습니다. 몇 가지 체크 포인트를 안내드리겠습니다:

  1. 데이터 정확성: availability_365 필드는 수동으로 입력된 값일 수 있으며, 데이터 입력 오류로 인해 잘못된 정보가 포함될 수 있습니다.

  2. 중복 데이터: 결과가 예상보다 많다면 중복 데이터가 존재할 수 있습니다. DISTINCT 키워드를 사용하고 있긴 하지만, 데이터가 그룹핑 조건에 따라 달라질 수 있습니다.

  3. 다른 조건 확인: 필터링할 때 availability_365 외에도 다른 필드나 테이블을 조건에 포함할 필요가 있을 수 있습니다. 예를 들어, 예약이 이미 존재하는지 등.

비슷한 질문에 대한 기존 답변을 링크해드리니 참고해주시기 바랍니다:

정확한 문제 해결을 위해서는 보다 구체적인 예제나 데이터를 기반으로 검토하는 것이 중요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

yseohyun11님의 프로필 이미지
yseohyun11

작성한 질문수

질문하기