집 >데이터 베이스 >MySQL 튜토리얼 >GROUP BY 절이 포함된 PostgreSQL 쿼리에서 오류가 발생하는 이유는 무엇입니까?
PostgreSQL GROUP BY 오류에 대한 자세한 설명
PostgreSQL에서 GROUP BY
절을 사용하여 데이터베이스 테이블을 쿼리할 때 SELECT
목록에 포함되었지만 집계되지 않은 모든 열은 GROUP BY
절에 나타나거나 집계 함수에 대한 인수로 사용되어야 합니다. 이 오류는 특정 열(예: col2
)을 기준으로 그룹화하려고 할 때 발생하지만 SELECT
문에 집계되지 않은 다른 열(예: col3
및 col1
)이 포함되어 있습니다.
집계 함수
집계 기능을 사용하면 여러 행의 데이터를 요약할 수 있습니다. 일반적인 집계 함수는 다음과 같습니다.
COUNT
(기록 집계)SUM
(열의 합 계산)MIN
(최소값 찾기)MAX
(최대값 찾기)AVG
(평균 계산)MySQL과 PostgreSQL의 GROUP BY 처리 차이점
MySQL은 PostgreSQL과 다르게 GROUP BY
절을 처리합니다. MySQL에서는 SELECT
목록에 GROUP BY
절에 나타나지 않는 집계되지 않은 열이 포함되어 있어도 여전히 허용됩니다. 그러나 이러한 열에서 반환되는 값은 레코드마다 임의로 달라질 수 있으므로 잠재적인 불일치가 발생할 수 있습니다.
반면 PostgreSQL은 SQL 표준을 엄격히 준수하므로 집계되지 않은 열은 GROUP BY
절에 포함되거나 집계 함수의 인수로 사용되어야 합니다.
솔루션
PostgreSQL에서 이 오류를 해결하려면 집계되지 않은 열에 집계 함수를 사용하도록 쿼리를 다시 작성하세요. 예:
<code class="language-sql">SELECT col2, MIN(col3) AS min_col3, MIN(col1) AS min_col1 FROM the_table GROUP BY col2;</code>
이 쿼리는 MIN
집계 함수를 사용하여 col2
에서 정의한 각 그룹에서 col3
및 col1
의 최소값을 검색합니다.
집계 함수를 사용하여 쿼리는 반환된 값이 일관되고 PostgreSQL GROUP BY
절의 요구 사항을 준수하는지 확인합니다.
위 내용은 GROUP BY 절이 포함된 PostgreSQL 쿼리에서 오류가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!