• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

4set 2번 문제

21.03.14 12:50 작성 조회수 90

2

4set 2번 문제 설명해주신 방법이 더 효율적인 건 알겠습니다.

저는 서브쿼리 2개써서 조인 하는 방식으로 풀어봤는데 뭐가 잘못된건 에러가뜨는데 잘 모르겠습니다.

Users_id 조인할 때 어느 부분이 문제인가요?

Duplicate column name 'Users_Id'

select 

A.request_at as Day

,(select round(count(b.id)/count(A.id),2)) as 'Cancellation Rate'

from 

(

select *

from Trips T

inner join users UC on T.client_id = UC.users_id 

inner join users UD on T.driver_id = UD.users_id 

where UC.banned = 'NO'

and UD.banned = 'NO'

and request_at between '2013-10-01' and '2013-10-03'

) A

left join 

(

select *

from Trips T

inner join users UC on T.client_id = UC.users_id

inner join users UD on T.driver_id = UD.users_id 

where UC.banned = 'NO'

and UD.banned = 'NO'

and request_at between '2013-10-01' and '2013-10-03'

and status like 'cancelled%'

) B on a.id = b.id

group by A.request_at

답변 1

답변을 작성해보세요.

1

에러 메시지는 'user_id' 라는 컬럼이 중복되었다는 메시지로

users를 여러 번 조인하면서, 각 테이블에 user_id가 들어있어 생기는 문제로 보입니다.

서브쿼리에 SELECT * 말고, 필요한 컬럼만 명시하고 Alias 를 주면 그 에러는 해결될겁니다 :)

감사합니다 ^^