Leetcode PostgreSQL Queries Quality and Percentage

업데이트:

문제

Link

코드

-- Write your PostgreSQL query statement below
SELECT query_name
    , ROUND(AVG(rating::DECIMAL / position), 2) AS quality
    , ROUND(SUM(CASE WHEN rating < 3 THEN 1 ELSE 0 END)::DECIMAL / count(*) * 100, 2) AS poor_query_percentage
FROM Queries
WHERE query_name IS NOT NULL
GROUP BY query_name

결과

Link

설명

  1. Queries 테이블에서 아래의 규칙의 값들을 query_name 기준으로 통계내는 문제이다.
    • quality는 $\frac{rating}{position}$의 평균을 나타낸다.
    • poor_query_percentage는 rating이 3 미만인 쿼리의 비율을 나타낸다.
    • 각 결과는 임의 순서대로 반환하며, 통계 결과는 소수점 2자리까지 표현한다.
  2. quality와 poor_query_percentage를 산출할 때 각 값은 int 형이므로, 소수점을 반환하기 위하여 분자를 DECIMAL 형으로 변경한다.

  3. query_name이 nullable 필드이므로, NULL이 아닌 경우만 대상으로 한다.

  4. query_name 기준으로 GROUP BY 수행하여 각 결과를 query_name 기준으로 통계내준다.

댓글남기기