Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Access
Войти
Регистрация
Восстановить пароль
 
Period79
4 / 4 / 0
Регистрация: 27.01.2016
Сообщений: 111
#1

Поиск уникальных значений в столбце - MS Access

05.03.2016, 16:40. Просмотров 1454. Ответов 12
Метки нет (Все метки)

Мне необходимо в таблице, в колонке "жир", вытащить количество уникальных значений. Этот пример из книги SQL для чайников, но там не работает. По условиям должно выходить число 5

Они пишут:
SELECT COUNT (DISTINCT Жир)

http://www.cyberforum.ru/ms-access/thread1589634.html


From Продукты ;

Но нифига не работает. DISTINCT вообще ни под каким соусом не подходит. Что я делаю не так? Как мне добиться получение суммы уникальных значений в столбце?
0
Миниатюры
Поиск уникальных значений в столбце  
Вложения
Тип файла: zip Primer.accdb.zip (22.6 Кб, 5 просмотров)
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.03.2016, 16:40
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Поиск уникальных значений в столбце (MS Access):

Количество уникальных значений в групповом запросе
Добрый день. Помогите, пожалуйста решить вот такую задачу: Требуется...

Создание запроса на выборку уникальных значений с фильтром
Здравствуйте! Работаю с базой впервые...нужна помощь. Столкнулась с такой...

Поиск уникальных записей
Помогите пожалуйста. В наличии итоговая таблица со столбцами KODPOL, FAM, IMY,...

Как сделать выпадающий список, состоящий из уникальных значений
Всем привет. Помогите разобраться с такой проблемой: У меня есть база IP...

Запрос с выводом уникальных значений
Здравствуйте , мне нужно сделать запрос на вывод количество уникальных числовых...

12
mobile
Эксперт MS Access
22490 / 12808 / 2611
Регистрация: 28.04.2012
Сообщений: 14,012
05.03.2016, 17:31 #2
Лучший ответ Сообщение было отмечено Period79 как решение

Решение

SQL
1
2
SELECT COUNT(*) AS kol
FROM (SELECT DISTINCT Жир FROM Продукты) AS q
1
texnik-san
шапоклякистка 8-го дня
3628 / 2189 / 389
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
05.03.2016, 17:31 #3
А книга о каком именно SQL? Их же много стандартов разных. В аксес действительно DISTINCT в вызов агрегатной функции не поместишь. Придется с подзапросом.

SQL
1
2
3
4
SELECT COUNT(*) FROM (
  SELECT DISTINCT Жир 
  FROM Продукты
);
1
Period79
4 / 4 / 0
Регистрация: 27.01.2016
Сообщений: 111
07.03.2016, 11:22  [ТС] #4
Цитата Сообщение от texnik-san Посмотреть сообщение
А книга о каком именно SQL? Их же много стандартов разных. В аксес действительно DISTINCT в вызов агрегатной функции не поместишь. Придется с подзапросом.
sql для чайников Аллен Тейлор. Я дошел до того, что срисовал пример один в один и ничего не вышло. Я в этой книге ничего кроме геммороя для себя не нашел, никому не советую данную книгу.

Добавлено через 23 минуты
Цитата Сообщение от mobile Посмотреть сообщение
DISTINCT
Все заработало.
а что это команда делает?
0
texnik-san
шапоклякистка 8-го дня
3628 / 2189 / 389
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
07.03.2016, 11:25 #5
Цитата Сообщение от Period79 Посмотреть сообщение
срисовал пример один в один и ничего не вышло
У Access свой стандарт SQL, упрощнный и с другим синтаксисом. Некоторые возможности, которые у баз данных в норме должны быть - в Access не работают в принципе; некоторые команды просто иначе пишутся.

Не буду говорить, что книга хорошая - я ее не читала, так что у меня нет мнения - но читать о других стандартах SQL в любом случае не вредно. Это расширяет кругозор и дает предтсавление о том, какие возможности вообще бывают у баз данных и какова идеология работы с ними.

Просто постоянно иметь в виду, что в деталях Аксес может отличаться от написанного в книге, и в случае трудностей есть смысл нажимать F1 и читать справку.
1
mobile
Эксперт MS Access
22490 / 12808 / 2611
Регистрация: 28.04.2012
Сообщений: 14,012
07.03.2016, 11:26 #6
Цитата Сообщение от Period79 Посмотреть сообщение
а что это команда делает?
Это неявная группировка по всем полям селекта. В Вашем примере если ее не ставить, то агрегатная функция Count выдаст столько значений, сколько всего есть в таблице. Включая повторяющиеся. Но сделав источником запроса подзапрос с дистинктом, мы получаем только уникальные значения. И каунт по ним даст правильное значение. По ТЗ.
0
texnik-san
шапоклякистка 8-го дня
3628 / 2189 / 389
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
07.03.2016, 11:28 #7
Цитата Сообщение от Period79 Посмотреть сообщение
а что это команда делает?
В аксес - это вспомогательное слово после команды SELECT, которое означает, что из выборки нужно исключить повторы.

Скажем, если SELECT бы выбрал
Иванов
Петров
Иванов
Сидоров

То SELECT DISTINCT оставит только
Иванов
Петров
Сидоров
1
Period79
4 / 4 / 0
Регистрация: 27.01.2016
Сообщений: 111
07.03.2016, 13:30  [ТС] #8
Цитата Сообщение от texnik-san Посмотреть сообщение
В аксес - это вспомогательное слово после команды SELECT, которое означает, что из выборки нужно исключить повторы.
А помогите на моем примере, нужно узнать, сколько видов проектов существует у Alena Barzaya и остальных.

SQL
1
2
SELECT COUNT(*) AS Кол
FROM (SELECT DISTINCT Код_тип_проекта FROM Таблица_Назначение_агентов_в_группы)  AS [ФОРМУЛА];
У меня не получается нормально с этой формулой работать, потому что я не понимаю до конца архитектуру языка. Как вставить в формулу еще один столбец, код_группы_ВК и чтобы запрос выдавал данные по этим группам. Мои попытки это сделать, приводят к ошибкам


Вот что должно получится на выходе:
Код_группы_ВК кол
Alena Barzaya 3
Lumberjack Ufa 1
0
Миниатюры
Поиск уникальных значений в столбце  
texnik-san
шапоклякистка 8-го дня
3628 / 2189 / 389
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
07.03.2016, 13:41 #9
Базу выладывайте. По скриншотам я не умею.
0
Period79
4 / 4 / 0
Регистрация: 27.01.2016
Сообщений: 111
07.03.2016, 13:57  [ТС] #10
Цитата Сообщение от texnik-san Посмотреть сообщение
Базу выладывайте. По скриншотам я не умею.
Выкладываю пример

Необходимо узнать, сколько уникальных "Код_тип_проекта" существует у каждого "Код_группы_ВК"
0
Вложения
Тип файла: zip Primer.zip (44.1 Кб, 5 просмотров)
texnik-san
шапоклякистка 8-го дня
3628 / 2189 / 389
Регистрация: 26.06.2015
Сообщений: 4,647
Записей в блоге: 1
07.03.2016, 14:27 #11
Если количество нужно считать не по всей таблице, а по каким-то группам, то в наружный запрос добаляется группировка.
Поле, по которому выполняется группировка, нужно добавить не только в наружный запрос, но и во внутренний.

SQL
1
2
3
4
5
6
SELECT T.Код_тип_проекта, COUNT(T.Код_группы_ВК) AS Кол
FROM (
    SELECT DISTINCT Код_тип_проекта, Код_группы_ВК 
    FROM Таблица_Назначение_агентов
)  AS T
GROUP BY T.Код_тип_проекта;
1
corbis
541 / 270 / 48
Регистрация: 03.04.2015
Сообщений: 926
07.03.2016, 14:32 #12
Вроде как наоборот ТС просил:
SQL
1
2
3
4
5
6
SELECT T.Код_группы_ВК, COUNT(T.Код_тип_проекта) AS Кол
FROM (
    SELECT DISTINCT Код_тип_проекта, Код_группы_ВК 
    FROM Таблица_Назначение_агентов
)  AS T
GROUP BY T.Код_группы_ВК;
2
Period79
4 / 4 / 0
Регистрация: 27.01.2016
Сообщений: 111
07.03.2016, 14:48  [ТС] #13
Цитата Сообщение от corbis Посмотреть сообщение
Вроде как наоборот ТС просил:
Именно так.

Но все, я почти понял, но главное что все работает
0
07.03.2016, 14:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2016, 14:48
Привет! Вот еще темы с решениями:

Удаление значений в столбце
Как с помощью кнопки в форме удалить все значение в столбце таблицы подчиненной...

Подсчет максимальных значений в столбце
Есть таблица Реестр в данной таблице есть столбец Номер_реестра в данном...

Несколько значений в столбце подстановок на форме
Есть форма и на ней поле со списком. Можно ли сделать так, чтобы при открытии...

Замена значений в столбце при Select SQL
как сделать следующее: есть 2 таблицы tblM - одно поле Code tblSh - два...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru