02/19 SQL 문제풀이 - 1934. Confirmation Rate (Leetcode)

Data Architect / Engineer·2024년 2월 19일
1

1일_1SQL

목록 보기
34/63
post-thumbnail

문제

  • LeetCode SQL 문제
  • 1934. Confirmation Rate / Medium
  • 문제 내용 : [링크]



내가 작성한 Query

select s.user_id
    , round(sum(case when c.action = 'confirmed' then 1 else 0 end )/ count(*), 2) as confirmation_rate
from signups s
    left join confirmations c on s.user_id = c.user_id
group by s.user_id
  • signups 테이블과 confirmations 테이블을 LEFT JOIN 을 통해 연결해준다.
    (REQUEST가 없던 계정에 대한 정보도 출력을 해야 하기 때문에 LEFT JOIN을 해준다.)

  • user_id 별 집계데이터를 출력해야 하므로, GROUP BY를 통해 user_id별로 그룹핑해준다.

  • CASE WHEN THEN 구문을 통해 action 값이 'confirmed' 인 경우 1, 아니면 0으로 처리한 후 SUM() 함수를 통해 합계를 구해주고, 그 값을 데이터의 개수(count(*))로 나누어 'confirmation_rate' 값을 구해준다.

  • 정리 : 'confirmation_rate'에 대한 정의만 잘 이해하면 쉽게 풀 수 있었다. CASE WHEN THEN 구문을 통해 confirmed 된 데이터 개수 합을 구하는 방법을 이용했다.

profile
질문은 계속돼 아오에

0개의 댓글