PostgreSQL: 단일 쿼리 내에서 계산된 열을 효율적으로 사용
강력한 관계형 데이터베이스 관리 시스템인 PostgreSQL은 강력한 데이터 조작 기능을 제공합니다. 그러나 단일 쿼리 내에서 계산된 열을 사용하는 것은 다른 데이터베이스 시스템과 다릅니다. 이 뉘앙스를 살펴보겠습니다.
기본 쿼리 내에서 직접 계산된 열을 사용하려고 시도하는 SQL과 유사한 접근 방식을 고려해 보세요.
<code class="language-sql">SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2, (total_1 + total_2) AS total_3 FROM data;</code>
PostgreSQL에서는 실패합니다. total_1
을 계산하는 시점에서 total_2
과 total_3
을 기존 컬럼으로 인식하지 못해서 발생하는 오류입니다.
해결 방법은 공통 테이블 표현식(CTE) 또는 하위 쿼리를 사용하여 중간 계산 열을 사용할 수 있도록 하는 것입니다. CTE를 사용하여 이를 달성하는 방법은 다음과 같습니다.
<code class="language-sql">WITH calculated_totals AS ( SELECT cost_1, quantity_1, cost_2, quantity_2, (cost_1 * quantity_1) AS total_1, (cost_2 * quantity_2) AS total_2 FROM data ) SELECT cost_1, quantity_1, cost_2, quantity_2, total_1, total_2, (total_1 + total_2) AS total_3 FROM calculated_totals;</code>
이 수정된 쿼리는 먼저 calculated_totals
및 total_1
을 계산하는 CTE total_2
를 정의합니다. 그런 다음 기본 쿼리는 CTE에서 이러한 계산된 열을 참조하여 total_3
을 계산합니다. 이 접근 방식은 성능 오버헤드 없이 정확한 계산을 보장합니다. CTE를 사용하는 것은 일반적으로 복잡한 쿼리의 가독성과 유지 관리를 위해 선호됩니다. 이 시나리오에서 CTE 또는 하위 쿼리를 사용해도 성능에 부정적인 영향을 미치지 않습니다.
위 내용은 PostgreSQL의 동일한 쿼리 내에서 계산된 열을 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!