그룹바이 예제

예를 들어 이 쿼리는 국가, 지역 및 판매에 대한 열이 있는 Sales 테이블을 만듭니다. 4개의 행을 삽입하고 두 행에는 국가 및 지역에 대한 일치하는 값이 있습니다. 열 순서는 ROLLUP 출력에 영향을 미치며 결과 집합의 행 수에 영향을 줄 수 있습니다. WHERE 절이 열에 조건을 배치하는 데 사용된다는 것을 알고 있지만 그룹에 조건을 배치하려면 어떻게해야합니까? GROUP BY 절을 포함하는 쿼리를 그룹화 된 쿼리라고 하며 그룹화 된 모든 항목에 대해 단일 행만 반환합니다. 그룹 집합은 명시적 그룹화 집합 목록의 일부가 아닌 경우 GROUP BY 절에서 허용되지 않습니다. 예를 들어, 그룹 별 열1, (열2, … ColumnN)은 표준에서 허용되지만 거래-SQL에서는 허용되지 않습니다. Transact-SQL은 그룹 BY C1, 그룹화 세트를 지원합니다((열2, … ColumnN)) 및 그룹 별 열1, 열2, …

columnN은 의미하는 것과 동일합니다. 이는 이전 그룹 BY 예제와 동일한 예입니다. 이는 GROUP BY Column1(Column2, … ColumnN)은 그룹 by C1, 그룹화 세트((열2, … columnN))))))))을 참조적으로 동일하지 않습니다. 출력에서 명확하게 볼 수 있듯이 ID를 가진 고객은 2016년에 1건, 2018년에는 2개의 주문을 했습니다. ID 2를 가진 고객은 2017년에 2개의 주문을, 2018년에 는 1개의 주문을 했습니다. 이 예제에서 GROUP BY 절은 고객을 도시별로 그룹화하고 COUNT() 함수는 각 도시의 고객 수를 반환합니다. 이것이 데이터베이스의 데이터를 요약하는 것입니다. 그룹화 집합은 그룹화 집합 내에서 허용되지 않습니다. 예를 들어 집합그룹별 그룹화(A1, A2,…

An, 그룹화 세트 (C1, C2, … Cn)))은 SQL-2006 표준에서 허용되지만 Transact-SQL에서는 허용되지 않습니다. Transact-SQL은 집합(A1, A2,… 그룹별로 그룹화할 수 있도록 합니다. An, C1, C2, … Cn) 또는 그룹별 그룹 집합(A1), (A2), … (안), (C1), (C2), … (Cn))) 첫 번째 GROUP BY 예제와 동일하고 보다 명확한 구문이 있는. 성별에 대한 고유한 값을 얻고 싶다고 가정해 보겠습니다. 다음 쿼리를 사용할 수 있습니다 – 이 예제에서는 DISTRIBUTED_AGG 쿼리 힌트를 사용하여 어플라이언스가 집계를 수행하기 전에 CustomerKey 열의 테이블을 섞도록 합니다. 국가 및 지역에 대한 3개의 값 조합이 있기 때문에 쿼리 결과에는 3개의 행이 있습니다.

캐나다와 브리티시 컬럼비아의 TotalSales는 두 행의 합계입니다. 이것이 HAVING 절이 사용되는 곳입니다. HAVING 절을 사용하여 최종 결과 집합의 일부가 될 그룹을 결정하는 조건을 배치할 수 있습니다. 또한 WHERE 절과 함께 SUM(), COUNT() 등과 같은 집계 함수를 사용할 수 없습니다. 따라서 조건에서 이러한 함수를 사용하려면 HAVING 절을 사용해야 합니다. 쿼리 결과를 행 그룹으로 나누는 SELECT 문 절은 일반적으로 각 그룹에 대해 하나 이상의 집계를 수행하기 위한 것입니다. SELECT 문은 그룹당 하나의 행을 반환합니다. 다음 쿼리는 국가 및 지역을 그룹화하고 각 값 조합에 대한 집계 합계를 반환합니다. 범주 ID가 동일하지만 릴리스된 연도가 다른 경우 행은 고유한 로 처리됩니다. 범주 ID와 릴리스된 연도가 두 개 이상의 행에 대해 동일한 경우 중복으로 간주되고 하나의 행만 표시됩니다. 다음 예제는 여러 그룹 BY 기준을 사용하여 결과를 그룹화합니다.

각 OrderDateKey 그룹 내에서 DueDateKey로 구분할 수 있는 하위 그룹이 있는 경우 결과 집합에 대해 새 그룹이 정의됩니다. 데이터베이스에서 총 수의 남성과 여성을 원한다고 가정해 보겠습니다. 아래 표시된 다음 스크립트를 사용하여 수행할 수 있습니다. 이제 GROUP By 절이 무엇인지 알아 보았으니 쿼리별로 기본 그룹에 대한 구문을 살펴보겠습니다. . 그룹 BY [ALL/DISTINCT]는 열 식이 포함된 간단한 GROUP BY 절에서만 허용됩니다. 그룹화 세트, 롤업, 큐브, 큐브 또는 롤업 구문에서는 허용되지 않습니다. ALL은 기본값이며 암시적입니다.

This entry was posted in Non classé. Bookmark the permalink.

Comments are closed.