>데이터 베이스 >MySQL 튜토리얼 >PostgreSQL에서 조건부 발생을 효율적으로 계산하려면 어떻게 해야 합니까?

PostgreSQL에서 조건부 발생을 효율적으로 계산하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2025-01-24 06:21:10400검색

How Can I Efficiently Count Conditional Occurrences in PostgreSQL?

PostgreSQL 조건 계산: 최적화 방법

데이터베이스 테이블의 데이터 발생 횟수를 계산할 때 조건문이 길어질 수 있습니다. 다행히 PostgreSQL은 편리하고 효율적인 솔루션을 제공합니다.

FILTER 집계 옵션

PostgreSQL 9.4 이상의 경우 최고의 효율성을 위해 FILTER 집계 옵션을 활용하세요.

<code class="language-sql">SELECT category
     , count(*) FILTER (WHERE question1 = 0) AS zero
     , count(*) FILTER (WHERE question1 = 1) AS one
     , count(*) FILTER (WHERE question1 = 2) AS two
FROM   reviews
GROUP  BY 1;</code>

간결한 구문

단순함이 최우선인 경우:

<code class="language-sql">SELECT category
     , count(question1 = 0 OR NULL) AS zero
     , count(question1 = 1 OR NULL) AS one
     , count(question1 = 2 OR NULL) AS two
FROM   reviews
GROUP  BY 1;</code>

크로스탭 쿼리

대규모 옵션 목록을 처리하고 더 높은 성능을 추구하려면 crosstab() 함수 사용을 고려하세요.

<code class="language-sql">SELECT * FROM crosstab(
     'SELECT category, question1, count(*) AS ct
      FROM   reviews
      GROUP  BY 1, 2
      ORDER  BY 1, 2'
   , 'VALUES (0), (1), (2)'
   ) AS ct (category text, zero int, one int, two int);</code>

위 내용은 PostgreSQL에서 조건부 발생을 효율적으로 계산하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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