SQL Server: ¿Cómo puedo usar la cláusula COUNT sin agrupar?
Estoy buscando obtener dos cosas de una consulta, dado un conjunto de restricciones:
El primer partidoEl número total de partidosPuedo conseguir el primer partido por:
SELECT TOP 1
ID,
ReportYear,
Name,
SignDate,
...
FROM Table
WHERE
...
ORDER BY ... //I can put in here which one I want to take
Y luego puedo obtener el recuento de partidos si uso
SELECT
MIN(ID),
MIN(ReportYear),
MIN(Name),
MIN(SignDate),
... ,
COUNT(*) as MatchCount
FROM Table
WHERE
...
GROUP BY
??? // I don't really want any grouping
Realmente quiero evitar agrupar y usar una función agregada en todos mis resultados. Esta preguntaSQL Server Seleccione COUNT sin usar la función agregada o el grupo por sugiere que la respuesta sería
SELECT TOP 1
ID,
ReportYear,
Name,
SignDate,
... ,
@@ROWCOUNT as MatchCount
FROM Table
Esto funciona sin el TOP 1, pero cuando está allí, @@ ROWCOUNT = número de filas devueltas, que es 1. ¿Cómo puedo obtener esencialmente la salida de COUNT (*) (lo que quede después de la cláusula where) sin agrupar o ¿Necesitas agregar todas las columnas?
Lo que no quiero hacer es repetir cada uno de estos dos veces, una para la primera fila y luego otra vez para el @@ ROWCOUNT. No encuentro una manera de usar GROUP BY correctamente, porque quiero estrictamente la cantidad de elementos que coinciden con mis criterios, y quiero columnas que si las agrupara, descartarían este número, a menos que no entienda a GROUP BY.