Ich kann alle unterschiedlichen Werte in einer Spalte auf folgende Weise auswählen:
SELECT DISTINCT column_name FROM table_name;
SELECT column_name FROM table_name GROUP BY column_name;
Aber wie erhalte ich die Zeilenanzahl aus dieser Abfrage? Ist eine Unterabfrage erforderlich?
Antworten:
Sie können das
DISTINCT
Schlüsselwort innerhalb derCOUNT
Aggregatfunktion verwenden:Dies zählt nur die unterschiedlichen Werte für diese Spalte.
quelle
select A,COUNT(DISTINCT B) from table group by A
Dies gibt Ihnen BEIDE die unterschiedlichen Spaltenwerte und die Anzahl der einzelnen Werte. Normalerweise finde ich, dass ich beide Informationen wissen möchte.
quelle
columnName
, erhalten Sie die eindeutigen Werte bereits einmal und dasdistinct
Schlüsselwort bewirkt hier nichts. Versuchen Sie die Abfrage ohne, die Ergebnismenge ist genau die gleiche.Beachten Sie, dass Count () Nullwerte ignoriert. Wenn Sie also Null als eigenen Wert zulassen müssen, können Sie Folgendes tun:
quelle
case when my_col is null then 1 else my_col end
SELECT my_col, COUNT(my_col) + COUNT(CASE WHEN my_col IS NULL THEN 1 ELSE NULL END) as CountOf from my_Table GROUP BY my_col
count(*)
speziell eine Anzahl von Zeilen.Eine SQL-Summe der eindeutigen Werte von column_name, sortiert nach der Häufigkeit:
quelle
Dies gibt die Anzahl der verschiedenen Gruppen von Spalten an.
quelle
Sie müssen diese eindeutige Spalte zählen und ihr dann einen Alias geben.
quelle
quelle
** **.
** **.
quelle
Mit dieser Abfrage können Sie verschiedene / unterschiedliche Daten zählen. Vielen Dank
quelle
Nach MS SQL Server 2012 können Sie auch die Fensterfunktion verwenden.
quelle
Count (different ({Feldname})) ist redundant
Einfach zählen ({Feldname}) gibt Ihnen alle unterschiedlichen Werte in dieser Tabelle. Es wird nicht (wie viele vermuten) nur die Anzahl der Tabellen angeben [dh NICHT die gleiche wie Anzahl (*) aus der Tabelle]
quelle
count(field)
Gibt die Anzahl der Zeilen zurück, in denen sichfield
befindetnot null
.