집 >데이터 베이스 >MySQL 튜토리얼 >SQL의 GROUP BY 절은 집계 함수 없이 어떻게 작동하나요?
집계 함수 없이 GROUP BY 이해
SQL에서 GROUP BY 문은 지정된 열을 기준으로 테이블의 행을 그룹화하는 데 사용됩니다. 집계 함수 없이 GROUP BY를 사용하는 경우 작동 방식과 필요한 조건을 이해하는 것이 중요합니다.
다음 예를 고려하세요.
SELECT ename, sal FROM emp GROUP BY ename, sal;
이 쿼리는 행을 반환하지 않습니다. 집계 함수가 없는 GROUP BY 규칙을 위반합니다.
이 경우 SELECT 목록에는 두 개의 열(ename, sal)이 있습니다. 이지만 GROUP BY 절에는 3개(ename, sal, sal)가 있습니다. 이 문제를 해결하려면 GROUP BY 절에서 sal 열 하나를 제거하세요.
SELECT ename, sal FROM emp GROUP BY ename;
sal을 SELECT 목록에 포함시키면 GROUP BY 절에 없기 때문에 GROUP BY가 아닌 열이 됩니다. 집계 함수가 아니기 때문에 ORA-00979 오류가 발생합니다.
이를 수정하려면 GROUP BY 절에 sal을 추가하거나 그 위에 집계 함수를 사용해야 합니다.
-- Add sal to the GROUP BY clause SELECT ename, MIN(sal), MAX(sal) FROM emp GROUP BY ename, sal; -- Use an aggregate function on sal SELECT ename, SUM(sal) FROM emp GROUP BY ename;
규칙 이면의 추론
GROUP BY 연산 GROUP BY 열에서 동일한 값이 있는 행을 병합하여 각각의 고유한 값 집합에 대해 단일 행을 생성합니다. 집계 함수 없이 SELECT 목록에 GROUP BY가 아닌 열을 포함하면 각 그룹의 대표 값을 선택하는 방법이 불분명하기 때문에 모호해집니다.
예를 들어 Name 및 Age 열이 있는 테이블이 있고 GROUP을 수행하는 경우 이름별, 각 이름에 대한 결과에 어떤 나이가 표시되어야 합니까? MIN, MAX 또는 SUM과 같은 집계 함수를 사용하여 해당 열을 처리하는 방법을 명시적으로 지정합니다.
위 내용은 SQL의 GROUP BY 절은 집계 함수 없이 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!