¿Qué tal usar una función de partición COUNT OVER (PARTITION BY {column to group by}) en SQL Server?
Por ejemplo, si desea agrupar las ventas de productos por ItemID y desea un recuento de cada ItemID distinto, simplemente use:
SELECT
{columns you want} ,
COUNT(ItemID) OVER (PARTITION BY ItemID) as BandedItemCount ,
{more columns you want}... ,
FROM {MyTable}
Si usa este enfoque, puede dejar el GROUP BY fuera de la imagen, suponiendo que desea devolver la lista completa (ya que podría informar las bandas donde necesita saber el recuento completo de elementos que va a agrupar sin tener para mostrar todo el conjunto de datos, es decir, Reporting Services).