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



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




  • SELECT DISTINCT column_name FROM table_name;

  • SELECT column_name FROM table_name GROUP BY column_name;


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

711   8  

8 ответов:

можно использовать 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, поэтому, если вам нужно разрешить 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, а затем дать ему псевдоним.

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

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
select count(*) from 
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T

Это даст количество различных групп столбцов.

select Count(distinct columnName) as columnNameCount from tableName 

Count (distinct({fieldname})) является избыточным

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

Comments

    Ничего не найдено.