Signups
+----------------+----------+
| Column Name | Type |
+----------------+----------+
| user_id | int |
| time_stamp | datetime |
+----------------+----------+
user_id는 이 테이블의 고유 값 열입니다.
각 행에는 ID가 user_id인 사용자의 가입 시간에 대한 정보가 포함됩니다.
Confirmations
+----------------+----------+
| Column Name | Type |
+----------------+----------+
| user_id | int |
| time_stamp | datetime |
| action | ENUM |
+----------------+----------+
(user_id, time_stamp)는 이 테이블의 기본 키(고유 값을 가진 열의 조합)입니다.
user_id는 Signups 테이블의 외래 키(참조 열)입니다.
action은 유형('confirmed', 'timeout')의 ENUM(카테고리)입니다.
이 테이블의 각 행은 user_id가 있는 사용자가 time_stamp에서 확인 메시지를 요청했고 해당 확인 메시지를 확인('confirmed')했거나 확인 없이 만료('timeout')되었음을 나타냅니다.
사용자의 확인율은 ‘확인된’ 메시지 수를 총 요청된 확인 메시지 수로 나눈 값입니다. 확인 메시지를 요청하지 않은 사용자의 확인율은 0입니다. 확인율은 소수점 둘째 자리에서 반올림합니다.
각 사용자의 확인율을 구하는 솔루션을 작성합니다.
결과 테이블을 임의의 순서로 반환합니다.
SELECT A.user_id , ROUND(SUM(CASE WHEN B.action = 'confirmed' THEN 1 ELSE 0 END) / COUNT(A.user_id), 2) AS confirmation_rate FROM Signups A LEFT JOIN Confirmations B ON A.user_id = B.user_id GROUP BY A.user_id ;
https://leetcode.com/problems/confirmation-rate/description/?envType=study-plan-v2&envId=top-sql-50