Запрос для вывода самого часто встречающегося Поля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
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-