[LeetCode] SQL 50 / MySQL / 1934. Confirmation Rate

2024. 1. 6. 18:18Coding/LeetCode-SQL

문제 링크

https://leetcode.com/problems/confirmation-rate/description/?envType=study-plan-v2&envId=top-sql-50

 

Confirmation Rate - LeetCode

Can you solve this real interview question? Confirmation Rate - Table: Signups +----------------+----------+ | Column Name | Type | +----------------+----------+ | user_id | int | | time_stamp | datetime | +----------------+----------+ user_id is the colum

leetcode.com

 

문제

 

코드

# Write your MySQL query statement below
SELECT A.user_id, Round(AVG(CASE WHEN B.action = 'confirmed' THEN 1 ELSE 0 END), 2) As confirmation_rate
FROM Signups A
LEFT JOIN Confirmations B
ON B.user_id = A.user_id
GROUP BY 1;

 

1. action 칼럼이 'confirmed' 가 아닌 경우의 횟수는 0으로 처리 되어야 하는데, 단순히 WHERE 조건절에 B.action = 'confirmed'라고 넣으면 'confirmed'가 아닌 경우가 아예 출력이 되지 않는다. 

따라서 CASE WHEN - THEN 구문으로 케이스를 구분해준다.