Подсчитать количество записей, возвращаемых группой - PullRequest
114 голосов
/ 28 февраля 2011

Как подсчитать количество записей, возвращаемых группой по запросу,

Например:

select count(*) 
from temptable
group by column_1, column_2, column_3, column_4

дает мне,

1
1
2

Мне нужно посчитать вышеупомянутые записи, чтобы получить 1 + 1 + 1 = 3.

Ответы [ 13 ]

0 голосов
/ 04 августа 2016

Как насчет использования функции разделения COUNT OVER (PARTITION BY {столбец для группировки по}) в SQL Server?

Например, если вы хотите сгруппировать продажи товара по ItemID и хотите подсчитать каждый отдельный ItemID, просто используйте:

SELECT
{columns you want} ,
COUNT(ItemID) OVER (PARTITION BY ItemID) as BandedItemCount ,
{more columns you want}... ,
FROM {MyTable}

Если вы используете этот подход, вы можете оставить GROUP BY вне изображения - при условии, что вы хотите вернуть весь список (как вы могли бы сделать объединение отчетов, где вам нужно знать все количество элементов, которые вы собираетесь полоса без отображения всего набора данных, т. е. служб отчетов).

0 голосов
/ 16 июня 2016

Попробуйте этот запрос:

select top 1 TotalRows = count(*) over () 
from yourTable
group by column1, column2
0 голосов
/ 13 августа 2015

Вы также можете получить по следующему запросу

select column_group_by,count(*) as Coulm_name_to_be_displayed from Table group by Column;

-- For example:
select city,count(*) AS Count from people group by city
...