집계 함수가 없는 Group By: 메커니즘 이해
GROUP BY는 다음을 기반으로 데이터를 그룹화하고 요약할 수 있는 강력한 SQL 절입니다. 지정된 열. SUM, COUNT, AVG와 같은 집계 함수는 일반적으로 GROUP BY와 함께 사용되지만 집계 함수 없이 GROUP BY를 사용할 수도 있습니다. GROUP BY의 전체 기능을 활용하려면 이 개념을 이해하는 것이 중요합니다.
집계 함수 없이 GROUP BY를 사용하는 경우 각 그룹이 출력에서 단일 행을 생성한다는 점을 이해하는 것이 중요합니다. GROUP BY 절에 포함되지 않은 열의 값은 그룹의 모든 행에 대해 효과적으로 복제됩니다.
EMP 테이블을 고려하세요.
ename | sal -------+------ Smith | 1000 Jones | 1200 Davis | 1100 Wilson | 1200 Brown | 1300
시나리오 1: 잘못된 GROUP BY 표현식
SELECT ename, sal FROM emp GROUP BY ename, sal;
이 쿼리는 오류로 인해 실패합니다. ORA-00979 sal이 GROUP BY 절에 포함되어 있지 않기 때문입니다. 모든 행은 sal에 대해 서로 다른 값을 가지므로 각 직원에 대해 여러 행이 생성됩니다.
시나리오 2: 유효한 GROUP BY 표현식
SELECT ename, sal FROM emp GROUP BY ename;
이 쿼리는 유효합니다. 이름별로 행을 그룹화하여 각 직원에 대한 고유한 행을 보장하기 때문입니다. sal 값은 동일한 직원에게 속한 각 행에 대해 중복됩니다.
시나리오 3: 잘못된 GROUP BY 표현식
SELECT ename, sal FROM emp GROUP BY sal;
이 쿼리는 유효하지 않습니다. Sal을 기준으로 행을 그룹화하려고 시도하면 동일한 직원의 행이 여러 개 생성됩니다. 급여.
시나리오 4: 잘못된 GROUP BY 표현식
SELECT empno, ename, sal FROM emp GROUP BY sal, ename;
GROUP BY 절의 열 순서가 열 순서와 일치해야 하므로 이 쿼리는 유효하지 않습니다. SELECT 절에.
시나리오 5: 유효한 GROUP BY 표현식
SELECT empno, ename, sal FROM emp GROUP BY empno, ename, sal;
이 쿼리는 GROUP BY 절의 열 순서가 SELECT 절의 열 순서와 일치하므로 유효합니다. 결과에는 empno, ename 및 sal의 각 개별 조합에 대한 단일 행이 포함됩니다.
요약하자면, 집계 함수가 없는 GROUP BY는 동일한 값을 공유하는 행을 그룹화하여 지정된 열에서 중복 항목을 제거합니다. 그러나 GROUP BY 절에 포함되지 않은 모든 열은 출력 행에 중복된 값을 갖게 됩니다.
위 내용은 SQL에서 집계 함수 없이 GROUP BY가 어떻게 작동하나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!