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

seunghyeon_jo님의 프로필 이미지
seunghyeon_jo

작성한 질문수

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

2번 문제 풀이

SELECT에서 만든 field, SELECT에서 재사용하기

작성

·

744

2

안녕하세요, SELECT에서 만든 field, SELECT에서 재사용할 수 있나요?

강의 마지막 부분에 언급하신게 굳이 서브쿼리로 묶을 필요 없다고 하셨습니다만, 서브 쿼리로 묶지 않으면 아래에서 활용이 불가능하던군요. cancel_count를 참조할 수 없다는 에러가 뜨네요.

서브 쿼리를 쓰지 않고 이 문제를 풀 수 있나요?

답변 1

1

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

직접 만든 cancle_count와 total_count 컬럼명을 같은 테이블 내 연산에 곧바로 사용하는 것은 불가능합니다. 

cancle_count, total_count라고 붙여준 이름이 아니라 그에 해당하는 연산식을 ROUND 안에 넣어주시면 서브쿼리 과정을 거치지 않고 곧바로 결과값을 도출할 수 있습니다.  

아래 쿼리 참고해 주세요 :)

SELECT request_at AS Day
               , ROUND(SUM(CASE WHEN status != 'completed' THEN 1 ELSE 0 END) / COUNT(*), 2) AS'Cancellation Rate'

seunghyeon_jo님의 프로필 이미지
seunghyeon_jo

작성한 질문수

질문하기