SQL, чтобы найти количество различных значений в столбце - PullRequest
312 голосов
/ 26 сентября 2008

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

  • SELECT DISTINCT column_name FROM table_name;
  • SELECT column_name FROM table_name GROUP BY column_name;

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

Ответы [ 10 ]

562 голосов
/ 26 сентября 2008

Вы можете использовать ключевое слово DISTINCT в статистической функции COUNT:

SELECT COUNT(DISTINCT column_name) AS some_alias FROM table_name

Это будет учитывать только отдельные значения для этого столбца.

149 голосов
/ 27 октября 2012

Это даст вам ОБА различные значения столбца и количество каждого значения. Я обычно нахожу, что хочу знать обе части информации.

select distinct columnName, count(columnName) as CountOf from tableName group by columnName
25 голосов
/ 27 сентября 2008

Имейте в виду, что Count () игнорирует нулевые значения, поэтому, если вам нужно разрешить нулевое значение в качестве собственного отдельного значения, вы можете сделать что-то хитрое, например:

select count(distinct my_col)
       + count(distinct Case when my_col is null then 1 else null end)
from my_table
/
13 голосов
/ 04 ноября 2008
select count(*) from 
(
SELECT distinct column1,column2,column3,column4 FROM abcd
) T

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

11 голосов
/ 20 мая 2015

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

SELECT column_name, COUNT(*) FROM table_name GROUP BY column_name ORDER BY 2 DESC;
11 голосов
/ 26 сентября 2008
SELECT COUNT(DISTINCT column_name) FROM table as column_name_count;

Вы должны посчитать этот отдельный col, а затем дать ему псевдоним.

5 голосов
/ 26 сентября 2008
select Count(distinct columnName) as columnNameCount from tableName 
1 голос
/ 05 июня 2019
select count(distinct(column_name)) AS columndatacount from table_name where somecondition=true

Вы можете использовать этот запрос для подсчета разных / разных данных. Спасибо

0 голосов
/ 26 декабря 2018

**

Используя следующий SQL, мы можем получить различное значение столбца в Oracle 11g.

**

Select count(distinct(Column_Name)) from TableName
0 голосов
/ 18 декабря 2014

Количество (отличное ({fieldname})) избыточно

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

...