2016-12-19 2 views
0

So einfach, wie es klingen mag:Wie Anzahl der Ergebnisse von einer Abfrage zurückgegeben bekommen - TSQL

ich eine SQL-Abfrage mit SSMS haben 2014.

SELECT * 
FROM RAWRESULTS 
GROUP BY Code 

Das gibt 2282 Ergebnisse. Ich mag die Abfrage verändern 1 Ergebnis zurückzukehren mit dem Wert 2282.

ich versucht habe:

SELECT Count(*) 
FROM RAWRESULTS 
GROUP BY Code 

SELECT TOP 1 @@ROWCOUNT 
FROM RAWRESULTS 
GROUP BY Code 

Zweite Möglichkeit geben, nicht konsistente Ergebnisse. Es gibt zufällig 1 anstelle von 2282.

Antwort

0
select count(*) from rawresults 

, dass Sie von rawresults Tabelle eine Zählung aller Datensätze geben

select count(distinct code) from rawresults 

, die Sie von rawresults eine Anzahl verschiedener Codes geben

select code, count(*) from rawresults group by code 

Damit erhalten Sie eine Zählung für jeden Code

+0

danke dafür. Alle drei hier sind die Ergebnisse: 1) Ich werde 5272 geben, weil ich mich nicht gruppiere. Nicht meine Anforderung. 3) würde 2282 Zeilen zurückgeben, das ist nicht meine Anforderung. Ich brauche nur 1 Zeile mit 2282 zurückgegeben. 2) Dies ist wahrscheinlich die Lösung: Wie es 1 Zeile mit 2282 zurückgibt. – aMazing

+0

Ausgezeichnet. Also im Grunde hast du versucht zu zählen, wie viele verschiedene Codes du in den Ergebnissen hattest. 2. Abfrage wird das für Sie tun. – zedfoxus

0

TRY Diese können Sie dies erreichen, indem Sie die Unterabfrage so verwenden, wie die Gesamtzahl der Datensätze die Gruppierung nach Code in einer einzigen Zeile zurückgeben soll:

select count(*) totalCount from (
select count(*) groupCountofEachCode from rawresults group by code) t 
Verwandte Themen