합계가 있는 요약 행 추가
나는 이것이 미친 것처럼 들리고 아마 이런 식으로 해서는 안 된다는 것을 알지만 나는 이런 것이 필요합니다 - 나는 레코드를 가지고 있습니다.SELECT [Type], [Total Sales] From Before
테이블 끝에 SUM을 표시하기 위해 끝에 행을 하나 더 추가합니다(이후).할 수 있을까요?
SQL Server 2008 이상 버전인 경우 GROUP BY 기능을 사용할 수 있습니다.
SELECT
Type = ISNULL(Type, 'Total'),
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
이것은 다음을 가정합니다.Type
열에는 NULL을 사용할 수 없으므로 이 쿼리의 NULL은 롤업 행(총계가 있는 행)을 나타냅니다.하지만, 만약에Type
열 자체에 NULL이 있을 수 있으며, 전체 행에 대한 더 적절한 유형의 회계는 @Declan_K의 답변과 같습니다. 즉, 다음 함수를 사용합니다.
SELECT
Type = CASE GROUPING(Type) WHEN 1 THEN 'Total' ELSE Type END,
TotalSales = SUM(TotalSales)
FROM atable
GROUP BY ROLLUP(Type)
;
SQL Server 2008+에서 사용할 강력한 그룹화/롤업 구문입니다.추측할 필요 없이 사용 중인 버전을 지정하는 데 항상 유용합니다.
SELECT
[Type] = COALESCE([Type], 'Total'),
[Total Sales] = SUM([Total Sales])
FROM dbo.Before
GROUP BY GROUPING SETS(([Type]),());
크레이그 프리드먼은 소개하는 멋진 블로그 포스트를 썼습니다.
사용해 보십시오.union all
하기와 같이
SELECT [Type], [Total Sales] From Before
union all
SELECT 'Total', Sum([Total Sales]) From Before
i-one이 제안한 대로 주문에 문제가 있다면 다음과 같이 시도해 보십시오.
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
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
집계 함수를 사용하지 않고 더 많은 열 값을 표시하려면GROUPING SETS
대신에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
질문에 대한 자세한 내용이 필요하지만 "유형"은 문자라는 표에서, "판매"는 거래라는 표에서 나온 것이라고 말합니다.UNION ALL을 사용할 수 있습니다.
SELECT type, COUNT(sales) "total sales"
FROM letters
GROUP BY type
UNION ALL
SELECT 'Total', COUNT(sales) "total sales"
FROM transactions
언급URL : https://stackoverflow.com/questions/17934318/add-a-summary-row-with-totals
'programing' 카테고리의 다른 글
구글 앱 엔진 vs 파이어베이스 (0) | 2023.07.14 |
---|---|
전체 MySQL 데이터베이스 복제?아이디어? 사람들은 무엇을 합니까? (0) | 2023.07.14 |
angular7에서 항목 목록을 표시할 때 매트 선택의 높이를 변경하려면 어떻게 해야 합니까? (0) | 2023.07.14 |
목록에서 모든 복제본을 찾는 방법은 무엇입니까? (0) | 2023.07.09 |
Mongodb 배경 인덱스 - 한 번 생성된 배경 인덱스가 여전히 있습니까? (0) | 2023.07.09 |