결제 로그(payments) 테이블이 있어요. 결제를 시도할 때마다 한 행이 쌓이고, 각 행은 결제 수단(method), 성공 여부(status: success 또는 failed), 금액(amount), 시각을 가져요. 결제 수단별로 성공률(%)을 구하는 SELECT 문 하나를 작성하세요. 성공률은 그 수단의 전체 결제 중 성공한 결제가 차지하는 비율을 퍼센트로 낸 값이에요. 결과는 두 컬럼으로 내요: - method : 결제 수단 - success_rate : 그 수단의 성공률(%) 수단 이름 오름차순으로 정렬하세요. solution.sql 에 쿼리를 쓰고, '테스트 실행' 을 누르면 실제 데이터베이스에서 돌아가 결과 표가 나와요.
PostgreSQL 로 결제 로그에서 수단별 성공률(%)을 구하는 SELECT 문을 짜는 문제입니다. 결제 기록 테이블이 데이터와 함께 준비돼 있고, '테스트 실행' 을 누르면 짠 쿼리가 진짜 데이터베이스에서 돌아 결과 표를 보여줍니다. 결과는 두 칸으로 내는데, 한 칸은 결제 수단, 다른 칸은 그 수단의 성공률입니다.
이 문제는 "비율을 낼 때 무엇으로 나누느냐에 따라 답이 통째로 달라진다"를 다룹니다. 개수를 세어 비율을 구하는 쿼리는 얼핏 맞아 보여도, 나누는 두 값의 성질에 따라 결과가 깔끔한 값이 아니라 뭉툭한 값으로 나오기도 합니다. 이런 쿼리를 믿기 전에는 화면을 대충 훑지 말고, 소수점이 있는 값이 나올 법한 곳에서도 계산이 제대로 됐는지 실제로 돌려 눈으로 봐야 합니다.