SQL Server: Como posso usar a cláusula COUNT sem GROUPing?
Eu estou procurando obter duas coisas de uma consulta, dado um conjunto de restrições:
O primeiro jogoO número total de partidasEu posso conseguir o primeiro jogo 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>
E então eu posso obter a contagem de partidas se eu usar
<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>
Eu realmente quero evitar o agrupamento e usar uma função agregada em todos os meus resultados. Essa questãoSQL Server Selecione COUNT sem usar função agregada ou grupo por sugere que a resposta seria
<code>SELECT TOP 1 ID, ReportYear, Name, SignDate, ... , @@ROWCOUNT as MatchCount FROM Table </code>
Isso funciona sem o TOP 1, mas quando está lá, @@ ROWCOUNT = número de linhas retornadas, que é 1. Como posso obter essencialmente a saída de COUNT (*) (o que resta depois da cláusula where) sem nenhum agrupamento ou precisa agregar todas as colunas?
O que eu não quero fazer é repetir cada um deles duas vezes, uma vez para a primeira linha e depois novamente para o @@ ROWCOUNT. Eu não estou encontrando uma maneira que eu possa usar corretamente GROUP BY, porque eu quero estritamente o número de itens que correspondem aos meus critérios, e eu quero colunas que se eu agrupasse eles iria jogar esse número fora - a menos que eu sou mal-entendido GROUP BY.