>데이터 베이스 >MySQL 튜토리얼 >SQL에서 집계 함수 없이 GROUP BY가 어떻게 작동하나요?

SQL에서 집계 함수 없이 GROUP BY가 어떻게 작동하나요?

Barbara Streisand
Barbara Streisand원래의
2024-12-25 08:35:23400검색

How Does GROUP BY Work Without Aggregate Functions in SQL?

집계 함수가 없는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.