SQL, чтобы найти количество различных значений в столбце

Я могу выбрать все отдельные значения в столбце следующими способами:

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

Но как мне получить счетчик строк из этого запроса? Требуется ли подзапрос?

Вы можете использовать ключевое слово DISTINCT внутри функции агрегации COUNT :

 SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name 

Это будет учитывать только отдельные значения для этого столбца.

Это даст вам ОБА различные значения столбца и количество каждого значения. Обычно я нахожу, что хочу знать обе части информации.

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

Имейте в виду, что Count () игнорирует нулевые значения, поэтому, если вам нужно разрешить null в качестве своего собственного значения, вы можете сделать что-то сложное, например:

 select count(distinct my_col) + count(distinct Case when my_col is null then 1 else null end) from my_table / 
 SELECT COUNT(DISTINCT column_name) FROM table as column_name_count; 

вы должны посчитать этот отчетливый col, а затем дать ему псевдоним.

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

Это даст счет отдельной группы столбцов.

Сумма sql уникальных значений column_name и отсортирована по частоте:

 SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC; 
 select Count(distinct columnName) as columnNameCount from tableName 

Граф (отдельный ({имя поля})) является избыточным

Просто Count ({fieldname}) дает вам все различные значения в этой таблице. Он не будет (как полагают многие) просто дать вам граф таблицы [т. Е. НЕ такой же, как граф (*) из таблицы]