Как получить количество всех строк таблицы при использовании GroupBy () вместо количества сгруппированных записей в SQL Server - PullRequest
0 голосов
/ 31 января 2020

Когда я использую Group by вместе с Count () в моем операторе select, он группирует записи и возвращает количество каждой группы.

Я хочу получить общий итог всех записей таблицы с Группой By. Как мне это получить.

Мне нужен результат, подобный приведенному ниже

GroupCount  Dept  GrandTotalOfAllRows
 2          CEC      6
 1          ECE      6
 3          CSE      6

Ответы [ 3 ]

1 голос
/ 31 января 2020

Обычно вы используете оконные функции: логика c предназначена для создания окна sum() совокупных подсчетов по всему набору данных.

Это будет выглядеть так:

select 
    count(*) GroupCount,
    dept, 
    sum(count(*)) over () GrandTotalOfAllRows
from mytable
group by dept
0 голосов
/ 01 февраля 2020

Вы можете использовать подзапрос.

SELECT
  dept
  ,COUNT(*) AS GroupCount
  ,(SELECT COUNT(*) FROM table) AS TotalCount
FROM table
GROUP BY
  dept
0 голосов
/ 31 января 2020

Вы можете добавить Раздел по в вашем запросе

....      
,SUM(GroupCount) OVER () AS GrandTotalOfAllRows
from Table 
GROUP by dept
...
...