SQL, чтобы найти количество различных значений в столбце
Я могу выбрать все уникальные значения в столбце, следующим образом:
SELECT DISTINCT column_name FROM table_name;SELECT column_name FROM table_name GROUP BY column_name;
но как я могу получить количество строк из запроса? Требуется ли подзапрос?
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Это даст количество различных групп столбцов.
Count (distinct({fieldname})) является избыточным
просто Count ({fieldname}) дает вам все различные значения в этой таблице. Это не будет (как многие предполагают) просто дать вам количество таблицы [т. е. не то же самое, что Count(*) из таблицы]
Comments