SQL Server: Wie kann ich die COUNT-Klausel ohne GROUPing verwenden?

Ich freue mich auf zwei Dinge aus einer Abfrage, wenn eine Reihe von Einschränkungen gegeben ist:

Das erste SpielDie Gesamtzahl der Übereinstimmungen

Ich kann das erste Match bekommen durch:

<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>

Und dann kann ich die Matchanzahl erhalten, wenn ich benutze

<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>

Ich möchte unbedingt vermeiden, alle meine Ergebnisse zu gruppieren und mit einer Aggregatfunktion zu versehen. Diese FrageSQL Server Wählen Sie COUNT aus, ohne die Aggregatfunktion oder Gruppierung nach zu verwenden schlägt vor, die Antwort wäre

<code>SELECT TOP 1
    ID,
    ReportYear,
    Name,
    SignDate,
     ... ,
    @@ROWCOUNT as MatchCount
FROM Table
</code>

Dies funktioniert ohne TOP 1, aber wenn es dort ist, ist @@ ROWCOUNT = Anzahl der zurückgegebenen Zeilen, was 1. Wie kann ich im Wesentlichen die Ausgabe von COUNT (*) (was auch immer nach der where-Klausel übrig bleibt) ohne Gruppierung oder erhalten Müssen alle Spalten aggregiert werden?

Was ich nicht tun möchte, ist, jedes dieser zwei Mal zu wiederholen, einmal für die erste Reihe und dann noch einmal für das @@ ROWCOUNT. Ich finde keinen Weg, wie ich GROUP BY richtig verwenden kann, da ich die Anzahl der Elemente, die meinen Kriterien entsprechen, genau festlegen möchte. Außerdem möchte ich Spalten, die diese Anzahl bei Gruppierung aufheben, sofern ich GROUP BY nicht falsch verstehe.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage