집 >데이터 베이스 >MySQL 튜토리얼 >SQL GROUP BY 절에서 별칭을 사용할 수 없는 이유는 무엇입니까?
SQL GROUP BY
절: 별칭이 항상 작동하지 않는 이유
SQL 별칭은 가독성을 높이지만 GROUP BY
절 내에서의 사용은 제한됩니다. 이 제한 사항을 살펴보겠습니다. 다음 쿼리를 고려해보세요.
<code class="language-sql">SELECT itemName as ItemName, substring(itemName, 1,1) as FirstLetter, Count(itemName) FROM table1 GROUP BY itemName, FirstLetter</code>
이 쿼리는 FirstLetter
별칭으로 그룹화하려고 시도합니다. 그러나 표준 SQL에서는 FROM
절에 나타나는 대로 그룹화 열의 이름을 지정해야 합니다. 올바른 구문은 다음과 같습니다.
<code class="language-sql">GROUP BY itemName, substring(itemName, 1,1)</code>
이 제한은 SQL의 실행 순서에 따라 발생합니다.
FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
GROUP BY
절은 별칭이 정의된 절 전에SELECT
처리됩니다. 따라서 FirstLetter
이 평가될 때 GROUP BY
은 아직 존재하지 않습니다.
이 규칙은 쿼리 일관성을 보장하고 모호성을 방지합니다. GROUP BY
에 별칭이 있으면 SELECT
에서 원래 열 이름을 사용하는 것이 중복되는 것처럼 보일 수 있지만 정확한 그룹화가 보장됩니다.
데이터베이스별 변형
MySQL 및 PostgreSQL과 같은 일부 데이터베이스 시스템은 예외를 제공합니다. 고급 쿼리 최적화 프로그램은 GROUP BY
절의 별칭을 처리할 수 있습니다. 그러나 데이터베이스 간 이식성을 위해서는 이 동작을 사용하지 않는 것이 좋습니다. 표준 SQL을 고수하면 다양한 데이터베이스 시스템에서 쿼리가 일관되게 작동할 수 있습니다.
위 내용은 SQL GROUP BY 절에서 별칭을 사용할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!