SQL Server: Jak mogę użyć klauzuli COUNT bez grupowania?
Szukam dwóch rzeczy z zapytania, biorąc pod uwagę zestaw ograniczeń:
Pierwszy meczŁączna liczba meczówPierwszy mecz mogę uzyskać:
SELECT TOP 1
ID,
ReportYear,
Name,
SignDate,
...
FROM Table
WHERE
...
ORDER BY ... //I can put in here which one I want to take
A potem mogę uzyskać liczbę meczów, jeśli użyję
SELECT
MIN(ID),
MIN(ReportYear),
MIN(Name),
MIN(SignDate),
... ,
COUNT(*) as MatchCount
FROM Table
WHERE
...
GROUP BY
??? // I don't really want any grouping
Naprawdę chcę uniknąć grupowania i używania funkcji agregującej we wszystkich moich wynikach. To pytanieSQL Server Wybierz COUNT bez używania funkcji agregującej lub grupy według sugeruje, że odpowiedź byłaby
SELECT TOP 1
ID,
ReportYear,
Name,
SignDate,
... ,
@@ROWCOUNT as MatchCount
FROM Table
Działa to bez TOP 1, ale gdy jest tam, @@ ROWCOUNT = liczba zwróconych wierszy, która wynosi 1. Jak mogę uzyskać zasadniczo wynik COUNT (*) (cokolwiek pozostało po klauzuli where) bez żadnego grupowania lub musisz zebrać wszystkie kolumny?
Nie chcę powtarzać każdego z nich dwa razy, raz dla pierwszego wiersza, a następnie ponownie dla @@ ROWCOUNT. Nie znajduję sposobu, w jaki mogę poprawnie używać GROUP BY, ponieważ ściśle zależy mi na liczbie elementów, które pasują do moich kryteriów, i chcę kolumn, które, jeśli je pogrupuję, wyrzucą tę liczbę - chyba że nie zrozumiem GROUP BY.