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(*) from
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T
Это даст количество отдельных групп столбцов.
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
вы должны посчитать этот отдельный столбец, а затем присвоить ему псевдоним.
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
**
Используя следующий SQL, мы можем получить количество значений отдельного столбца в Oracle 11g.
**
Select count(distinct(Column_Name)) from TableName
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true
Вы можете использовать этот запрос для подсчета разных данных.Спасибо
Count(distinct({имя_поля})) является избыточным
Simply Count({имя_поля}) выдает вам все различные значения в этой таблице.Это не будет (как многие предполагают) просто давать вам количество таблиц [т.е.НЕ то же самое, что Count(*) из таблицы]