Мой запрос довольно прост:сравнения Принятие запроса возрасты
select a.ID, a.adres, a.place, a.postalcode
from COMPANIES a, COMPANIES b
where a.Postcode = b.Postcode
and a.Adres = b.Adres
and (
select COUNT(COMPANYID)
from USERS
where COMPANYID=a.ID
)>(
select COUNT(COMPANYID)
from USERS
where COMPANYID=b.ID
)
База данных: SQL Server 2008 R2
То, что я пытаюсь сделать: Таблица КОМПАНИЯМИ содержит двойные записи. Я хочу знать те, которые связаны с большинством пользователей. Поэтому мне нужно изменить только внешние ключи. (Я уже знаю идентификаторы удвоений)
Прямо сейчас это занимает много времени. Мне было интересно, если можно было бы сделать быстрее
у вас есть индексы, определенные на объединение и где положение колонок? – Oded
Да идентификатор является первичным ключом компаний и CompanyID индексируется, поскольку мы используем соединение довольно часто для поиска пользователей. –
И поля 'Postcode' и' Adres' на self join? – Oded