[leetcode]1934. Confirmation Rate

김준석·2024년 2월 5일
0

코딩테스트 - SQL

목록 보기
66/96

문제

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

코드

WITH cnt AS(
    SELECT
        s.user_id,
        SUM(CASE WHEN c.action='confirmed' THEN 1 ELSE 0 END) AS cnt
    FROM
        Confirmations c
        RIGHT JOIN Signups s
            ON c.user_id = s.user_id
    GROUP BY
        s.user_id
)
SELECT
    cnt.user_id,
    ROUND(cnt.cnt/COUNT(cnt.user_id),2) AS confirmation_rate 
FROM
    Confirmations co
    RIGHT JOIN cnt
        ON co.user_id=cnt.user_id
GROUP BY
    co.user_id

후기

사실 답을 맞춘건 아님..
근데 너무 억울하다!!

문제에는 정렬을 안해도 된다고 했으면서 내 output과 정답 정렬이 다르다고 틀렸다고 한다....
.......대체 왜!!!!!!!!!!!


오!
이거 CTE 부분에서 COUNT(cnt.user_id)를 구해주면 본 쿼리에서 조인을 안해줘도 돼서
다시 코드 짜보니까 통과함 ㅎㅎ

WITH cnt AS(
    SELECT
        s.user_id,
        COUNT(s.user_id) AS user_cnt,
        SUM(CASE WHEN c.action='confirmed' THEN 1 ELSE 0 END) AS confirmed_cnt
    FROM
        Confirmations c
        RIGHT JOIN Signups s
            ON c.user_id = s.user_id
    GROUP BY
        s.user_id
)
SELECT
    user_id,
    ROUND(confirmed_cnt/user_cnt,2) AS confirmation_rate 
FROM
    cnt
GROUP BY
    user_id

0개의 댓글