복붙노트

[SQL] SQL 쿼리에서 그룹화 COUNT의 SUM

SQL

SQL 쿼리에서 그룹화 COUNT의 SUM

나는 2 개 필드가있는 테이블이 있습니다 :

ID  Name
--  -------
1   Alpha
2   Beta
3   Beta
4   Beta
5   Charlie
6   Charlie

나는 '수'로, 이름으로 그룹화를 원하고 행 'SUM'

Name     Count
-------  -----
Alpha     1
Beta      3
Charlie   2
SUM       6

방법은 아래 표를 SUM 행을 추가하는 쿼리를 작성합니다?

해결법

  1. ==============================

    1.

    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
    
  2. ==============================

    2.

    SELECT name, COUNT(name) AS count, SUM(COUNT(name)) OVER() AS total_count
    FROM Table GROUP BY name
    
  3. ==============================

    3.사용하는 RDBMS 지정하지 않고

    사용하는 RDBMS 지정하지 않고

    이 데모에서보세요

    SELECT Name, COUNT(1) as Cnt
    FROM Table1
    GROUP BY Name
    UNION ALL
    SELECT 'SUM' Name, COUNT(1)
    FROM Table1
    

    그건 내가 총이 데이터베이스에서 프리젠 테이션 계층에서 추가, 그리고 할 것을 추천했다.

    이것은 좀 더 SQL 서버 버전의 ROLLUP을 사용하여 데이터 요약을 사용하고

    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
    
  4. ==============================

    4.이 시도:

    이 시도:

    SELECT  ISNULL(Name,'SUM'), count(*) as Count
    FROM table_name
    Group By Name
    WITH ROLLUP
    
  5. ==============================

    5.다음과 같이 실행하십시오 :

    다음과 같이 실행하십시오 :

    Select sum(count) 
      from (select Name, 
                   count(Name) as Count 
              from YourTable
          group by Name);  -- 6
    
  6. ==============================

    6.당신은 가입 행에 노동 조합을 사용할 수 있습니다.

    당신은 가입 행에 노동 조합을 사용할 수 있습니다.

    select Name, count(*) as Count from yourTable group by Name
    union all
    select "SUM" as Name, count(*) as Count from yourTable
    
  7. ==============================

    7.SQL Server 용 당신이 하나를 시도 할 수 있습니다.

    SQL Server 용 당신이 하나를 시도 할 수 있습니다.

    SELECT ISNULL([NAME],'SUM'),Count([NAME]) AS COUNT
    FROM TABLENAME
    GROUP BY [NAME] WITH CUBE
    
  8. ==============================

    8.나는이 질문을 해석하는 방법은 답변의 각 그룹의 소계 값을 필요로한다. 파티션을 사용하여 매우 쉽게로 회전을 합하면 :

    나는이 질문을 해석하는 방법은 답변의 각 그룹의 소계 값을 필요로한다. 파티션을 사용하여 매우 쉽게로 회전을 합하면 :

    SUM(COUNT(0)) OVER (PARTITION BY [Grouping]) AS [MY_TOTAL]
    

    이것은 내 전체 SQL 호출 모습입니다 :

    SELECT MAX(GroupName) [name], MAX(AUX2)[type],  
    COUNT(0) [count], SUM(COUNT(0)) OVER(PARTITION BY GroupId) AS [total]
        FROM [MyView]
      WHERE Active=1 AND Type='APP' AND Completed=1
        AND [Date] BETWEEN '01/01/2014' AND GETDATE()
        AND Id = '5b9xxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx' AND GroupId IS NOT NULL
      GROUP BY AUX2, GroupId
    

    같은이 외모에서 반환 된 데이터 :

    name    type    count   total
    Training Group 2    Cancelation 1   52
    Training Group 2    Completed   41  52
    Training Group 2    No Show 6   52
    Training Group 2    Rescheduled 4   52
    Training Group 3    NULL        4   10535
    Training Group 3    Cancelation 857 10535
    Training Group 3    Completed   7923    10535
    Training Group 3    No Show 292 10535
    Training Group 3    Rescheduled 1459    10535
    Training Group 4    Cancelation 2   27
    Training Group 4    Completed   24  27
    Training Group 4    Rescheduled 1   27
    
  9. ==============================

    9.

      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
    
  10. ==============================

    10.당신은 ROLLUP을 사용할 수 있습니다

    당신은 ROLLUP을 사용할 수 있습니다

    select nvl(name, 'SUM'), count(*)
    from table
    group by rollup(name)
    
  11. ==============================

    11.여기에 솔루션의 모든 큰하지만 반드시 (적어도 내 경우에) 기존 MySQL의 서버에 구현 될 수있다. 당신이 하위 쿼리를 사용할 수 있도록 (내가이 덜 복잡하다 생각한다).

    여기에 솔루션의 모든 큰하지만 반드시 (적어도 내 경우에) 기존 MySQL의 서버에 구현 될 수있다. 당신이 하위 쿼리를 사용할 수 있도록 (내가이 덜 복잡하다 생각한다).

     select sum(t1.cnt) from 
            (SELECT column, COUNT(column) as cnt
                FROM
                table 
                GROUP BY 
                column
                HAVING 
                COUNT(column) > 1) as t1 ;
    
  12. ==============================

    12.당신은 이름에 의해 그룹을 시도하고 그 그룹의 ID를 셀 수 있습니다.

    당신은 이름에 의해 그룹을 시도하고 그 그룹의 ID를 셀 수 있습니다.

    SELECT name, count(id) as COUNT FROM table group by name
    
  13. ==============================

    13.로 사용

    로 사용

    select Name, count(Name) as Count from YourTable
    group by Name
    union 
    Select 'SUM' , COUNT(Name) from YourTable
    
  14. ==============================

    14.나는 SQL 서버를 사용하고 있고 다음이 당신을 위해 작동합니다 :

    나는 SQL 서버를 사용하고 있고 다음이 당신을 위해 작동합니다 :

    캐스트 선택 (VARCHAR (같은 이름 (16))) '이름', 수 (명)로 '백작'등 표 1에서 이름으로 그룹 노동 조합의 모든 '합계'를 선택, 수 (명) 표 1에서

  15. ==============================

    15.또한 수 (*)> 1을 갖는 필수. 그래서, 몇 가지 위의 쿼리를 참조 후 내 자신의 쿼리를 작성

    또한 수 (*)> 1을 갖는 필수. 그래서, 몇 가지 위의 쿼리를 참조 후 내 자신의 쿼리를 작성

    통사론:

    select sum(count) from (select count(`table_name`.`id`) as `count` from `table_name` where {some condition} group by {some_column} having count(`table_name`.`id`) > 1) as `tmp`;
    

    예:

    select sum(count) from (select count(`table_name`.`id`) as `count` from `table_name` where `table_name`.`name` IS NOT NULL and `table_name`.`name` != '' group by `table_name`.`name` having count(`table_name`.`id`) > 1) as `tmp`;
    
  16. ==============================

    16.쿼리 후 총 행 수를 얻기 위해 아래의 실행

    쿼리 후 총 행 수를 얻기 위해 아래의 실행

    select @@ROWCOUNT
    
  17. ==============================

    17.에서 합 (S)을 선택 C (COUNT (*)> 1을 갖는의 Col_name 의해 TAB_NAME 그룹에서 S로 계산 (의 Col_name)을 선택)

    에서 합 (S)을 선택 C (COUNT (*)> 1을 갖는의 Col_name 의해 TAB_NAME 그룹에서 S로 계산 (의 Col_name)을 선택)

  18. from https://stackoverflow.com/questions/12927268/sum-of-grouped-count-in-sql-query by cc-by-sa and MIT license