[SQL] 합계로 요약 행 추가
SQL합계로 요약 행 추가
나는 미친이 소리를 알고 아마 이런 식으로해서는 안하지만이 같은 뭔가가 필요 - 내가 SELECT [유형], [총 판매] 전에서에서 기록이
나는 테이블의 끝 (후)에서 SUM을 보여주기 위해 마지막에 추가 행을 추가하고 싶습니다. 이것은 할 수 있을까요?
해결법
-
==============================
1.당신은 SQL Server 2008 또는 이후 버전에있는 경우, 당신은 기능에 의해 ROLLUP () 그룹을 사용할 수 있습니다 :
당신은 SQL Server 2008 또는 이후 버전에있는 경우, 당신은 기능에 의해 ROLLUP () 그룹을 사용할 수 있습니다 :
SELECT Type = ISNULL(Type, 'Total'), TotalSales = SUM(TotalSales) FROM atable GROUP BY ROLLUP(Type) ;
이것은이 쿼리에서 NULL이 롤업 행, 그랜드 총을 가진 하나를 나타냅니다 있도록 유형 열이 널 (null)을 가지고 할 수 있다고 가정합니다. 유형 열은 자신의 널 (null)을 가질 수 있습니다 경우, 전체 행에 대해 회계의 더 적절한 유형은 Declan_K의 대답 @에서, 즉 GROUPING () 함수를 사용하여 같은 것이다 :
SELECT Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END, TotalSales = SUM(TotalSales) FROM atable GROUP BY ROLLUP(Type) ;
-
==============================
2.이것은 더 강력한 그룹화 / 롤업 구문은 SQL 서버 2008+에 사용할 것입니다. 우리가 추측 할 필요가 없습니다 당신이 사용하고있는 버전을 지정하는 것이 유용합니다.
이것은 더 강력한 그룹화 / 롤업 구문은 SQL 서버 2008+에 사용할 것입니다. 우리가 추측 할 필요가 없습니다 당신이 사용하고있는 버전을 지정하는 것이 유용합니다.
SELECT [Type] = COALESCE([Type], 'Total'), [Total Sales] = SUM([Total Sales]) FROM dbo.Before GROUP BY GROUPING SETS(([Type]),());
크레이그 프리드먼 GROUPING SETS를 소개하는 좋은 블로그 포스트를 작성했습니다.
-
==============================
3.사용 조합을 시도 모두 아래로
사용 조합을 시도 모두 아래로
SELECT [Type], [Total Sales] From Before union all SELECT 'Total', Sum([Total Sales]) From Before
당신이 주문에 문제가있는 경우에, 나는-하나는 제안이 시도 :
select [Type], [Total Sales] from (SELECT [Type], [Total Sales], 0 [Key] From Before union all SELECT 'Total', Sum([Total Sales]), 1 From Before) sq order by [Key], Type
-
==============================
4.당신은 ROLLUP 연산자를 사용할 수 있습니다
당신은 ROLLUP 연산자를 사용할 수 있습니다
SELECT CASE WHEN (GROUPING([Type]) = 1) THEN 'Total' ELSE [Type] END AS [TYPE] ,SUM([Total Sales]) as Total_Sales From Before GROUP BY [Type] WITH ROLLUP
-
==============================
5.당신은 ROLLUP 대신 그룹화 집합 집계 기능을 사용하지 않고 더 열 값을 표시하려면 :
당신은 ROLLUP 대신 그룹화 집합 집계 기능을 사용하지 않고 더 열 값을 표시하려면 :
SELECT Type = ISNULL(Type, 'Total'), SomeIntColumn = ISNULL(SomeIntColumn, 0), TotalSales = SUM(TotalSales) FROM atable GROUP BY GROUPING SETS ((Type, SomeIntColumn ), ()) ORDER BY SomeIntColumn --Displays summary row as the first row in query result
from https://stackoverflow.com/questions/17934318/add-a-summary-row-with-totals by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 포스트 그레스 - 컬럼에 트랜스 행 (0) | 2020.04.14 |
---|---|
[SQL] 오라클 SQL, CONCATENATE 여러 열 + 텍스트 추가 (0) | 2020.04.14 |
[SQL] DATETIME을 비교하고 DATE 시간 부분을 무시하고 (0) | 2020.04.14 |
[SQL] PostgreSQL을 신속하게 비슷한 문자열 찾기 (0) | 2020.04.14 |
[SQL] 15 분 간격으로 그룹 MySQL의 쿼리 (0) | 2020.04.13 |