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:
<code>SELECT TOP 1 ID, ReportYear, Name, SignDate, ... FROM Table WHERE ... ORDER BY ... //I can put in here which one I want to take </code>
Y luego puedo obtener el recuento de partidos si uso
<code>SELECT MIN(ID), MIN(ReportYear), MIN(Name), MIN(SignDate), ... , COUNT(*) as MatchCount FROM Table WHERE ... GROUP BY ??? // I don't really want any grouping </code>
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
<code>SELECT TOP 1 ID, ReportYear, Name, SignDate, ... , @@ROWCOUNT as MatchCount FROM Table </code>
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.