SQL 쿼리에서 그룹화 된 COUNT의 SUM
두 개의 필드가있는 테이블이 있습니다.
아이디 이름 -------- 1 알파 2 베타 3 베타 4 베타 5 찰리 6 찰리
이름, 'count', 행 'SUM'으로 그룹화하고 싶습니다.
이름 수 ------- ----- 알파 1 베타 3 찰리 2 합계 6
테이블 아래에 SUM 행을 추가하는 쿼리를 어떻게 작성합니까?
SELECT name, COUNT(name) AS count
FROM table
GROUP BY name
UNION ALL
SELECT 'SUM' name, COUNT(name)
FROM table
산출:
name count
-------------------------------------------------- -----------
alpha 1
beta 3
Charlie 2
SUM 6
SELECT name, COUNT(name) AS count, SUM(COUNT(name)) OVER() AS total_count
FROM Table GROUP BY name
사용중인 rdbms를 지정하지 않고
이 데모를보십시오
SQL 바이올린 데모
SELECT Name, COUNT(1) as Cnt
FROM Table1
GROUP BY Name
UNION ALL
SELECT 'SUM' Name, COUNT(1)
FROM Table1
즉, 총계는 데이터베이스가 아닌 프레젠테이션 레이어에서 추가하는 것이 좋습니다.
이것은 ROLLUP을 사용하여 데이터 요약을 사용하는 SQL SERVER 버전에 조금 더 가깝습니다.
SQL 바이올린 데모
SELECT CASE WHEN (GROUPING(NAME) = 1) THEN 'SUM'
ELSE ISNULL(NAME, 'UNKNOWN')
END Name,
COUNT(1) as Cnt
FROM Table1
GROUP BY NAME
WITH ROLLUP
이 시도:
SELECT ISNULL(Name,'SUM'), count(*) as Count
FROM table_name
Group By Name
WITH ROLLUP
다음과 같이 실행하십시오.
Select sum(count)
from (select Name,
count(Name) as Count
from YourTable
group by Name); -- 6
Union을 사용하여 행을 결합 할 수 있습니다.
select Name, count(*) as Count from yourTable group by Name
union all
select "SUM" as Name, count(*) as Count from yourTable
SQL 서버의 경우 이것을 시도 할 수 있습니다.
SELECT ISNULL([NAME],'SUM'),Count([NAME]) AS COUNT
FROM TABLENAME
GROUP BY [NAME] WITH CUBE
with cttmp
as
(
select Col_Name, count(*) as ctn from tab_name group by Col_Name having count(Col_Name)>1
)
select sum(ctn) from c
ROLLUP을 사용할 수 있습니다.
select nvl(name, 'SUM'), count(*)
from table
group by rollup(name)
이름으로 그룹을 시도하고 해당 그룹의 ID를 계산할 수 있습니다.
SELECT name, count(id) as COUNT FROM table group by name
그것을 사용하십시오
select Name, count(Name) as Count from YourTable
group by Name
union
Select 'SUM' , COUNT(Name) from YourTable
I am using SQL server and the following should work for you:
select cast(name as varchar(16)) as 'Name', count(name) as 'Count' from Table1 group by Name union all select 'Sum:', count(name) from Table1
After the query, run below to get the total row count
select @@ROWCOUNT
select sum(s) from (select count(Col_name) as s from Tab_name group by Col_name having count(*)>1)c
ReferenceURL : https://stackoverflow.com/questions/12927268/sum-of-grouped-count-in-sql-query
'Programing' 카테고리의 다른 글
phpMyAdmin에서 UTF-8 문자를 표시하는 방법은 무엇입니까? (0) | 2020.12.24 |
---|---|
Android에서 강제로 링크를 열어 Chrome에서 열 수있는 방법이 있습니까? (0) | 2020.12.15 |
Python matplotlib 다중 막대 (0) | 2020.12.15 |
변수의 최소값에 해당하는 행을 그룹별로 추출 (0) | 2020.12.15 |
UIAlertView / UIAlertController iOS 7 및 iOS 8 호환성 (0) | 2020.12.15 |