Как подсчитать уникальные элементы в поле в запросе Access? - программирование
Подтвердить что ты не робот

Как подсчитать уникальные элементы в поле в запросе Access?

Моя таблица: таблица1

ID  Name  Family
1   A     AA
2   B     BB
3   A     AB
4   D     DD
5   E     EE
6   A     AC

Команда SQL в Access:

select count(*) from table1

Результат: ------------ > True 6 строк (строк)

Я пытался подсчитать уникальные имена:

Ожидаемый результат: 4 ряда (строк)

select count(distinct Name) from table1

Выход на доступ: ------------ > Ошибка

Какие изменения мне необходимо внести в мой запрос?

4b9b3361

Ответ 1

Попробуйте это

SELECT Count(*) AS N
FROM
(SELECT DISTINCT Name FROM table1) AS T;

Подробнее читайте .

Ответ 2

Access-Engine не поддерживает

SELECT count(DISTINCT....) FROM ...

Вы должны сделать это следующим образом:

SELECT count(*) 
FROM
(SELECT DISTINCT Name FROM table1)

Немного обходной путь... вы считаете выбор DISTINCT.

Ответ 3

Быстрый прием для меня - использовать SQL-запрос поиска дубликатов и изменить значение от 1 до 0 в выражении "Наличие". Как это:

SELECT COUNT([UniqueField]) AS DistinctCNT FROM
(
  SELECT First([FieldName]) AS [UniqueField]
  FROM TableName
  GROUP BY [FieldName]
  HAVING (((Count([FieldName]))>0))
);

Надеюсь, что это помогает, я уверен, что это не лучший способ, и Access должен был это встроить.