inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

4set 2번 문제

152

Sumg-Jun Hur

작성한 질문수 1

1

안녕하세요. 

아래 쿼리와 같이 SUM(CASE WHEN Status != 'completed'가 아닌

SUM(CASE WHEN Status = 'cancelled_by_driver ' 를 하면 틀린 답이라고 나옵니다.

같은 내용인거 같은데 왜 틀린지를 모르겠네요 ㅠ 확인해 주시면 감사하겠습니다. 

SELECT Day, ROUND(rate/total,2) AS `Cancellation Rate`

FROM (

SELECT a.Request_at AS Day

    , SUM(CASE WHEN Status = 'cancelled_by_driver ' THEN 1 ELSE 0 END) AS rate

    , COUNT(*) as total

FROM Trips a

    INNER JOIN Users uc ON a.Client_Id = uc.Users_Id

    INNER JOIN Users ud ON a.Driver_Id = ud.Users_Id

WHERE a.Request_at BETWEEN '2013-10-01' AND '2013-10-03'

AND uc.Banned = 'No'

AND ud.Banned = 'No'

GROUP BY 1  

) t

sql

답변 1

1

지식공유자 J

Status의 값은 'completed', 'cancelled_by_driver', 'cancelled_by_client' 이렇게 3가지가 있습니다.

취소율을 구하려면 드라이버에 의한 취소 건과 클라이언트에 의한 취소 건을 모두 포함해야 하는데,

작성하신 것처럼 CASE WHEN Status = 'cancelled_by_driver' 라고 하면 'cancelled_by_client'의 데이터는 포함되지 않습니다. 

강의기간 연장문의

0

95

2

HackerRank : Weather Observation Station 11 문제풀이

0

115

1

SET4의 3번 자리바꾸기 문제 다른 풀이

0

185

1

set 3의 3번 문제- 데이터의 개수가 짝수일 때 질문

0

262

2

set 1 - 2번 문제풀이

0

257

1

세트2번 Binary Tree Nodes 질문입니다!

0

223

2

고급문제풀이set1 3번 문제

0

248

2

고급문제풀이 3번 INNERJOIN 활용시 오류

0

268

1

회사일하다 보니까 다 못듣고 수강기간이 다끝나가는데 .,. 수강기간 연장은 어떻게 할수 있나요?ㅜㅜ

0

319

1

[Weather 20 ] 2번째 쿼리도 따라 했는데 왜 다 실패일까요?

0

371

1

[Weather 20] 따라 했는데 왜 작동 안해요?

0

273

1

weather-20 왜 작동 안하는건가요?

0

225

1

Ollivander's Inventory 윈도우 함수 min() over

0

309

1

LeetCode 626. Exchange Seats 리트코드 제출 오류

0

505

2

섹션4에 3번 문제풀이 질문

0

375

2

SQL Project Planning 풀이 관련 문의

0

578

2

섹션 1번 4번문제 풀이

1

282

1

섹션1 2번 문제풀이 강의

0

300

1

set2 - 1 같게 작성했는데 답이 이상합니다.

0

284

1

max함수를 써서 풀지는 못하나요?

0

296

1

윈도우 함수를 이용해서 풀고 싶어서 써봤습니다. 더 간단하게 줄일 수 있을까요?

0

256

1

(Hacker Rank)Binary Tree 문제 질문

0

325

1

쿼리 두개로 작성하고 싶지 않아 하나로 어떻게든 만들어 봤습니다.

0

290

1

이런 풀이는 왜 안되는지 궁금해요

0

271

1