

select Count(distinct columnName) as columnNameCount from tableName
Вы можете использовать ключевое слово DISTINCT в агрегатной функции COUNT:
SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name
При этом будут подсчитаны только отдельные значения для этого столбца.
Отлично, я не знал, что вы можете поместить туда отдельное ключевое слово.
также работает на группах select A,COUNT(DISTINCT B) from table group by A
Можете ли вы расширить этот пример, чтобы выделить несколько столбцов?
11 лет спустя, и это все еще полезно
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;
вам нужно посчитать этот отдельный столбец, а затем присвоить ему псевдоним.
Имейте в виду, что Count () игнорирует нулевые значения, поэтому, если вам нужно разрешить null как отдельное значение, вы можете сделать что-то сложное, например:
select count(distinct my_col)
+ count(distinct Case when my_col is null then 1 else null end)
from my_table
/
Я действительно думаю, что в вашем заявлении по делу было сказано: case when my_col is null then 1 else my_col end
Для наглядности: SELECT my_col, COUNT(my_col) + COUNT(CASE WHEN my_col IS NULL THEN 1 ELSE NULL END) as CountOf from my_Table GROUP BY my_col
count (*) включает нули
@PragmaticProgrammer Думаю, да, но нет такой вещи, как нулевая строка, только нулевое значение, а count(*) - это, в частности, количество строк.
select count(*) from
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T
Это даст количество отдельных групп столбцов.
Это даст вам ОБА различных значений столбца и количество каждого значения. Я обычно считаю, что хочу знать обе части информации.
SELECT [columnName], count([columnName]) AS CountOf
FROM [tableName]
GROUP BY [columnName]
Счетчик (отдельный ({fieldname})) является избыточным
Просто подсчет ({fieldname}) дает вам все различные значения в этой таблице. Он не будет (как многие предполагают) просто дать вам счетчик таблицы [т.е. НЕ то же самое, что Счетчик (*) из таблицы]
Нет, это нет правильно. count(field) возвращает количество строк, где field - это not null.
SQL-сумма уникальных значений column_name, отсортированная по частоте:
SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
Определенно лучший ответ ИМО
**
Using following SQL we can get the distinct column value count in Oracle 11g.
**
Select count(distinct(Column_Name)) from TableName
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true
Вы можете использовать этот запрос для подсчета разных / разных данных. Спасибо
После MS SQL Server 2012 вы также можете использовать оконную функцию.
SELECT column_name,
COUNT(column_name) OVER (Partition by column_name)
FROM table_name group by column_name ;
Какую версию SQL Server вы используете?