Выборка дубликатов адресов абонентов MYSQL

Технические вопросы по UTM 5.0
Ответить
Аватара пользователя
botanik26rus
Сообщения: 2
Зарегистрирован: Сб янв 02, 2016 07:51

Выборка дубликатов адресов абонентов MYSQL

Сообщение botanik26rus »

Здравствуйте!
Возникла необходимость выбрать из БД биллинга учетки с одинаковыми адресами (Улица, Дом, Квартира) .
Сваял такой запрос:

Код: Выделить всё

SELECT basic_account,full_name,actual_address,building,flat_number,mobile_telephone,home_telephone FROM users WHERE (actual_address,building,flat_number,is_deleted) IN ( SELECT actual_address,building,flat_number,is_deleted FROM users WHERE actual_address != '' and building != '' and flat_number != '' and is_deleted != '1') and (actual_address,building,flat_number) IN ( SELECT actual_address,building,flat_number FROM users GROUP BY actual_address,building,flat_number HAVING COUNT(id)>1 )
На тестовой базе отрабатывает отлично, на боевой виснет.

Может есть какой нить вариант оптимизировать этот запрос или какое то другое решение для этой задачи.
Подскажите пожалуйста.

Аватара пользователя
MaxDM
Сообщения: 313
Зарегистрирован: Пн апр 03, 2006 10:26
Контактная информация:

Сообщение MaxDM »

Выводит осн. лиц. счета абонентов, у которых совпадают улица и квартира.

Код: Выделить всё

SELECT u.basic_account, u.house_id, u.flat_number 
FROM users u
WHERE u.is_deleted=0 AND (u.house_id, u.flat_number) IN (SELECT u.house_id, u.flat_number FROM users u WHERE u.is_deleted=0 GROUP BY u.house_id, u.flat_number HAVING count(u.house_id)>1 OR count(u.flat_number)>1)
ORDER BY u.basic_account

p.s. Для PostgreSQL.

Ответить