>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 일치하는 행의 백분율을 효율적으로 계산하는 방법은 무엇입니까?

PostgreSQL에서 일치하는 행의 백분율을 효율적으로 계산하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-27 09:10:12553검색

How to Efficiently Calculate Percentages of Matching Rows in PostgreSQL?

PostgreSQL 쿼리 내 SUM()의 백분율 계산

쿼리 이해

The 제공된 쿼리는 value_a 및 value_b가 있는 행의 비율을 계산하는 것을 목표로 합니다. my_obj 테이블은 동일합니다. 하지만 Compute_percent 저장 프로시저에서 참조하는 nb_ok 열이 존재하지 않아 오류가 발생합니다.

Optimized Solution

이 문제를 해결하려면 다음을 고려하세요. 더 효율적인 접근 방식:

SELECT property_name,
       (COUNT(value_a = value_b OR NULL) * 100) / COUNT(*) AS pct
FROM my_obj
GROUP BY property_name;

설명

이 쿼리:

  • COUNT(..를 사용하여 value_a = value_b인 행 수를 계산합니다. .).
  • (value_a = value_b) 표현식을 사용하여 NULL 값을 처리합니다. OR NULL).
  • (COUNT(...) * 100) / COUNT(*)를 사용하여 일치하는 행 수를 총 행 수로 나눕니다.
  • 외부 기능이 필요합니다.
  • 결과를 property_name별로 그룹화하여 각 속성에 대한 백분율을 표시합니다. group.

소수 포함

결과에서 소수를 유지하려면 다음 수정된 쿼리를 사용하세요.

SELECT property_name,
       ROUND((COUNT(value_a = value_b OR NULL) * 100.0) / COUNT(*), 2) AS pct
FROM my_obj
GROUP BY property_name;

이것은 버전은 ROUND(...)를 사용하여 백분율을 소수점 이하 두 자리로 반올림합니다.

위 내용은 PostgreSQL에서 일치하는 행의 백분율을 효율적으로 계산하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.