-Поиск по дневнику

Поиск сообщений в rss_sql_ru_access_programming

 -Подписка по e-mail

 

 -Постоянные читатели

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.03.2006
Записей:
Комментариев:
Написано: 4


Запрос для вывода самого часто встречающегося Поля2 для Поля1

Вторник, 19 Марта 2019 г. 23:22 + в цитатник
Есть Access 2010 и куча данных в нём. Смысл запроса. Есть таблица с номерами реестров операций (pifile) и названиями организаций (org), по которым эти операции проходят. Нужно для каждого реестра найти самую часто встречающуюся организацию. В результате нужен список соответствий - Реестр-Организация. Если самых часто встречающихся организаций несколько, то реестр в итоговый запрос выводить не нужно.

Сначала создала запрос, группирующий пары Реестр-Организация и подсчитывающий, сколько таких пар получилось. Назвала его A:
Select pifile, org, count(pifile) as [counted]
From table
Group by pifile, org

Дальше пытаюсь найти самые часто встречающиеся организации для реестров и отбросить повторяющиеся реестры
Select B.pifile, B.maxcount, A.org
From
   (Select pifile, max(counted) as [maxcount]
   From A
   Group by pifile) as B
Inner Join A on B.pifile=A.pifile And B.maxcount=A.counted
Group by B.pifile, B.maxcount, A.org  //по чему группировала точно не помню, но вряд ли мне удалось бы сделать группировку по-другому
Having Count(B.pifile)=1

Без группировки и Having Count(B.pifile)=1 в итоговую таблицу попадало много записей с повторяющимися номерами реестров. Когда это добавила, повторов стало меньше.
Откуда они вообще берутся, и можно ли как-то их убрать (если самых повторяющихся организаций по реестру больше одной, то она не нужна)?

https://www.sql.ru/forum/1310398/zapros-dlya-vyvoda-samogo-chasto-vstrechaushhegosya-polya2-dlya-polya1


 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку