Как насчет использования функции разделения 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 вне изображения - при условии, что вы хотите вернуть весь список (как вы могли бы сделать группировку отчета, где вам нужно знать все количество элементов, которые вы собираетесь объединить, не имея для отображения всего набора данных, т. е. служб отчетов).