vorkommen SQL, um die Anzahl unterschiedlicher Werte in einer Spalte zu finden



sql unterschiedliche werte zählen (7)

Ich kann alle verschiedenen Werte in einer Spalte folgendermaßen auswählen:

  • SELECT DISTINCT column_name FROM table_name;
  • SELECT column_name FROM table_name GROUP BY column_name;

Aber wie bekomme ich die Zeilenanzahl von dieser Abfrage? Ist eine Unterabfrage erforderlich?


Answer #1

Count (distinct ({fieldname})) ist redundant

Simply Count ({fieldname}) gibt Ihnen alle eindeutigen Werte in dieser Tabelle. Es wird nicht (wie viele annehmen) Ihnen nur die Anzahl der Tabelle geben [dh nicht dasselbe wie Count (*) aus Tabelle]


Answer #2
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;

Sie müssen diesen eindeutigen Col zählen und ihm dann einen Alias ​​geben.


Answer #3

Beachten Sie, dass Count () Nullwerte ignoriert. Wenn Sie also null als seinen eigenen eindeutigen Wert berücksichtigen müssen, können Sie etwas kompliziertes tun:

select count(distinct my_col)
       + count(distinct Case when my_col is null then 1 else null end)
from my_table
/

Answer #4

Dies gibt Ihnen sowohl die eindeutigen Spaltenwerte als auch die Anzahl der einzelnen Werte. Normalerweise finde ich, dass ich beide Informationen wissen möchte.

select distinct columnName, count(columnName) as CountOf from tableName group by columnName

Answer #5
select count(*) from 
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T

Dies ergibt eine bestimmte Anzahl von Spalten.


Answer #6

Eine SQL-Summe der eindeutigen Werte von column_name und nach Häufigkeit sortiert:

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;

Answer #7
select Count(distinct columnName) as columnNameCount from tableName 




distinct