>데이터 베이스 >MySQL 튜토리얼 >여러 열이 있는 PostgreSQL 쿼리에서 단일 열을 효율적으로 집계하는 방법은 무엇입니까?

여러 열이 있는 PostgreSQL 쿼리에서 단일 열을 효율적으로 집계하는 방법은 무엇입니까?

Patricia Arquette
Patricia Arquette원래의
2024-12-31 13:55:08819검색

How to Efficiently Aggregate a Single Column in PostgreSQL Queries with Multiple Columns?

여러 추가 열이 있는 쿼리에서 단일 열을 집계하는 방법

PostgreSQL에서는 쿼리에 다른 열을 포함하면서 단일 열을 집계하는 것은 번거로울 수 있습니다. 그러나 사용 가능한 솔루션이 있습니다.

기본 키에 Group By 사용

PostgreSQL 9.1 이상에서는 프로세스가 단순화됩니다. GROUP BY로 집계할 때는 테이블의 기본 키만 포함하면 됩니다. 따라서 foo1이 tbl1의 기본 키인 경우 쿼리는 다음과 같이 단순화될 수 있습니다.

SELECT foo1, foo2, foo3, foo4, foo5, foo6, string_agg(aggregated_field, ', ')
FROM   tbl1
GROUP  BY 1
ORDER  BY foo7, foo8;

조인 전 집계

여러 테이블과 관계가 있는 쿼리의 경우 다음을 수행하는 것이 더 효율적일 수 있습니다. 먼저 집계하고 나중에 참여하세요. 예:

SELECT t1.foo1, t1.foo2, ...
     , t2.bar1, t2.bar2, ...
     , a.aggregated_col 
FROM   tbl1 t1
LEFT   JOIN tbl2 t2 ON ...
...
LEFT   JOIN (
   SELECT some_id, string_agg(agg_col, ', ') AS aggregated_col
   FROM   agg_tbl a ON ...
   GROUP  BY some_id
   ) a ON a.some_id = ?.some_id
ORDER  BY ...

이렇게 하면 쿼리의 관련 부분에서만 집계가 수행되어 성능이 향상됩니다.

위 내용은 여러 열이 있는 PostgreSQL 쿼리에서 단일 열을 효율적으로 집계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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