Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поиск дублей по сравнению с временной таблицей / 7 сообщений из 7, страница 1 из 1
21.03.2019, 12:07
    #39789495
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
Добрый день.
Подскажите, пожалуйста, в решении такой задачи:
Есть запрос, который ищет адреса с дублирующими координатами:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
with double_coo_id as
( select id from public.house_coordinates,
(select count(hc.id) cnt, hc.latitude lat, hc.longitude long
 from public.house_coordinates hc
group by hc.latitude, hc.longitude
having count(hc.id) > 3) doubles_coo
 where 1=1
 and latitude = doubles_coo.lat and longitude = doubles_coo.long
)     

select eah.orponid, eah.adr_adm_ter, dci.*
from public.ent_as_house eah, double_coo_id dci
where 1=1
and livestatus = 1
and parent_id is not null
and coordinates_id = dci.id
;


И есть временная таблица:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
CREATE TABLE #tmpCities
(Nomer INT,
City_name VARCHAR(50),
Count_people int);

INSERT INTO #tmpCities
VALUES (1, 'Москва г', 12506),
(2, 'Санкт-Петербург г', 5352),
(3, 'Новосибирск г', 1613),
(4, 'Екатеринбург г', 1469),
(5, 'Нижний Новгород г', 1259),
(6, 'Казань г', 1244);



Подскажите, пожалуйста, как в первый запрос добавить условие выбора только тех адресов, которые содержат в поле eah.adr_adm_ter значение tmpCities.City_name, то есть условие eah.adr_adm_ter like ’% tmpCities.City_name %’ и отсортировать полученные записи по полю tmpCities.Nomer
...
Рейтинг: 0 / 0
21.03.2019, 12:35
    #39789514
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
*Ann*,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
with double_coo_id as( 
	select 
		c.id 
	from 
		public.house_coordinates c,
		(select count(hc.id) cnt, hc.latitude lat, hc.longitude long from public.house_coordinates hc group by hc.latitude, hc.longitude having count(hc.id) > 3) doubles_coo
	where 
		1=1
		and c.latitude = doubles_coo.lat 
		and c.longitude = doubles_coo.long
) 
select 
	eah.orponid
	, eah.adr_adm_ter
	, dci.*
from 
	public.ent_as_house eah
	, double_coo_id dci
	, #tmpCities tc 
where 
	1=1
	and eah.livestatus = 1
	and eah.parent_id is not null
	and eah.coordinates_id = dci.id
	and eah.adr_adm_ter like '%' + tc.City_name + '%'
order by
	ct.Nomer 
;



ЗЫЖ
1.не забывайте алиасы
2. может лучше заменить запятые на inner join ?
...
Рейтинг: 0 / 0
21.03.2019, 12:48
    #39789524
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
HandKot,
Спасибо за помощь. Можете подсказать как "+" заменить в postgresql? Выдаётся ошибка operator does not exist
...
Рейтинг: 0 / 0
21.03.2019, 12:51
    #39789526
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
*Ann*,
Вы ошиблись форумом.
...
Рейтинг: 0 / 0
21.03.2019, 13:00
    #39789530
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
*Ann*HandKot,
Спасибо за помощь. Можете подсказать как "+" заменить в postgresql? Выдаётся ошибка operator does not exist
если вы про оператор строковой конкатенации, то в PG для этого используется такая конструкция: ||
...
Рейтинг: 0 / 0
21.03.2019, 13:03
    #39789533
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
*Ann*,

ну или используйте АНСи-ориентированный CONCAT:
Код: plsql
1.
Select CONCAT ('п','р','и','м','е','р')
...
Рейтинг: 0 / 0
27.03.2019, 06:29
    #39791966
*Ann*
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск дублей по сравнению с временной таблицей
Щукина Анна,

Спасибо, про конструкцию || забыла. Все получилось.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Поиск дублей по сравнению с временной таблицей / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]