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 (*) из таблицы]