Нажаль зусім па рознаму пішуць, шмат скаротаў:
У Беларусі polygon, tags->‘natural’=‘water’ AND name is not NULL:
select count(*), (array_agg(DISTINCT w.name))[0:3] AS name, (array_agg(DISTINCT w.tags->'water')) as water, (array_agg(DISTINCT w.tags->'waterway')) AS waterway from osm_polygon w inner join osm_polygon c on ST_Intersects(c.way, w.way) where c.osm_id = -59065 and w.tags->'natural'='water' AND w.name is not NULL group by lower(w.name) LIKE 'оз.%', lower(w.name) LIKE 'воз.%', lower(w.name) LIKE 'о.%', lower(w.name) LIKE 'в.%', lower(w.name) LIKE 'озеро%', lower(w.name) LIKE 'возера%', lower(w.name) LIKE '%оз.', lower(w.name) LIKE '%воз.', lower(w.name) LIKE '%о.', lower(w.name) LIKE '%в.', lower(w.name) LIKE '%озеро', lower(w.name) LIKE '%возера', lower(w.name) LIKE 'озёра%', lower(w.name) LIKE '%озёра', lower(w.name) LIKE 'п.%', lower(w.name) LIKE 'пр.%', lower(w.name) LIKE 'пруд%', lower(w.name) LIKE '%п.', lower(w.name) LIKE '%пр.', lower(w.name) LIKE '%пруд', lower(w.name) LIKE 'вдхр.%', lower(w.name) LIKE 'вдсх.%', lower(w.name) LIKE 'водохранилище%', lower(w.name) LIKE 'водасховішча%', lower(w.name) LIKE '%вдхр.', lower(w.name) LIKE '%вдсх.', lower(w.name) LIKE '%водохранилище', lower(w.name) LIKE '%водасховішча' order by 1 desc;
count | name | water | waterway
-------+----------------------------------------------------------------------------------------+---------------------------------------------------------------------------------+------------------------
1269 | {-,"17-й карьер",berezovoe} | {canal,intermittent,lake,oxbow,pond,reservoir,river,riverbank,залив,озеро,NULL} | {oxbow,riverbank,NULL}
756 | {"оз. Адворенское","оз. Азаренское","оз. Азароново"} | {lake,oxbow,pond,NULL} | {stream,NULL}
235 | {"озеро Азерцы","озеро Аксеново","озеро Алашское"} | {lake,oxbow,pond,NULL} | {NULL}
78 | {"Адамово озеро","Бамовское озеро","Банное озеро"} | {lake,pond,reservoir,NULL} | {NULL}
74 | {"пруд №1","Пруд №1","пруд №10"} | {pond,NULL} | {NULL}
23 | {"Аргеловское водохранилище","Великоборское водохранилище","Вишневское водохранилище"} | {lake,pond,reservoir,NULL} | {NULL}
16 | {пруд,Пруд} | {pond,NULL} | {NULL}
10 | {"Визжар вдхр.","Вилейское вдхр.","Волчковичское вдхр."} | {reservoir,NULL} | {NULL}
10 | {"Водохранилище Боровец","водохранилище Второе Лидское","Водохранилище Дягильно"} | {reservoir,NULL} | {NULL}
9 | {"Гайтюнишский пруд","Дикий пруд","Замковый пруд"} | {lake,pond} | {NULL}
6 | {озеро,Озеро} | {reservoir,NULL} | {NULL}
5 | {"вдхр. Вяча","вдхр. Дрозды","вдхр. Криница"} | {lake,reservoir,NULL} | {NULL}
4 | {"Гаранскае возера","Іванаўскае возера","Мікулінскае возера"} | {lake,reservoir} | {NULL}
3 | {водохранилище,Водохранилище} | {reservoir,NULL} | {NULL}
3 | {"возера Апіта","возера Бледнае","возера Бяле / Beļānu ezers"} | {lake,NULL} | {NULL}
3 | {"озёра Близнецы","озёра Дарские","озёра Хатьковы"} | {lake} | {NULL}
3 | {"о. Жимкана","о. Каташи","О. Михайлов"} | {NULL} | {NULL}
1 | {"В. Климовича"} | {lake} | {NULL}
(18 rows)
У Беларусі polygon, tags->‘natural’=‘water’ AND tags->‘water’=‘lake’ AND name is not NULL:
select count(*), (array_agg(DISTINCT w.name))[0:3] AS name, (array_agg(DISTINCT w.tags->'water')) as water, (array_agg(DISTINCT w.tags->'waterway')) AS waterway from osm_polygon w inner join osm_polygon c on ST_Intersects(c.way, w.way) where c.osm_id = -59065 and w.tags->'natural'='water' AND w.tags->'water'='lake' AND w.name is not NULL group by lower(w.name) LIKE 'оз.%', lower(w.name) LIKE 'воз.%', lower(w.name) LIKE 'о.%', lower(w.name) LIKE 'в.%', lower(w.name) LIKE 'озеро%', lower(w.name) LIKE 'возера%', lower(w.name) LIKE '%оз.', lower(w.name) LIKE '%воз.', lower(w.name) LIKE '%о.', lower(w.name) LIKE '%в.', lower(w.name) LIKE '%озеро', lower(w.name) LIKE '%возера', lower(w.name) LIKE 'озёра%', lower(w.name) LIKE '%озёра', lower(w.name) LIKE 'п.%', lower(w.name) LIKE 'пр.%', lower(w.name) LIKE 'пруд%', lower(w.name) LIKE '%п.', lower(w.name) LIKE '%пр.', lower(w.name) LIKE '%пруд', lower(w.name) LIKE 'вдхр.%', lower(w.name) LIKE 'вдсх.%', lower(w.name) LIKE 'водохранилище%', lower(w.name) LIKE 'водасховішча%', lower(w.name) LIKE '%вдхр.', lower(w.name) LIKE '%вдсх.', lower(w.name) LIKE '%водохранилище', lower(w.name) LIKE '%водасховішча' order by 1 desc;
count | name | water | waterway
-------+-----------------------------------------------------------+--------+----------
731 | {"оз. Адворенское","оз. Азаренское","оз. Азароново"} | {lake} | {NULL}
280 | {"Byelaye Lake","Długie - Длуге","Drūkšiai / Дрысвяты"} | {lake} | {NULL}
223 | {"озеро Азерцы","озеро Аксеново","озеро Алашское"} | {lake} | {NULL}
70 | {"Адамово озеро","Бамовское озеро","Банное озеро"} | {lake} | {NULL}
3 | {"озёра Близнецы","озёра Дарские","озёра Хатьковы"} | {lake} | {NULL}
3 | {"Гаранскае возера","Мікулінскае возера","старое возера"} | {lake} | {NULL}
2 | {"возера Апіта","возера Бледнае"} | {lake} | {NULL}
1 | {"Искусственное водохранилище"} | {lake} | {NULL}
1 | {"Панский пруд"} | {lake} | {NULL}
1 | {"В. Климовича"} | {lake} | {NULL}
1 | {"вдхр. Криница"} | {lake} | {NULL}
(11 rows)
У Беларусі polygon, tags->‘natural’=‘waterway’ AND name is not NULL:
select count(*), (array_agg(DISTINCT w.name))[0:3] AS name, (array_agg(DISTINCT w.tags->'water')) as water, (array_agg(DISTINCT w.tags->'waterway')) AS waterway from osm_polygon w inner join osm_polygon c on ST_Intersects(c.way, w.way) where c.osm_id = -59065 and w.tags ? 'waterway' AND w.name is not NULL group by lower(w.name) LIKE 'оз.%', lower(w.name) LIKE 'воз.%', lower(w.name) LIKE 'о.%', lower(w.name) LIKE 'в.%', lower(w.name) LIKE 'озеро%', lower(w.name) LIKE 'возера%', lower(w.name) LIKE '%оз.', lower(w.name) LIKE '%воз.', lower(w.name) LIKE '%о.', lower(w.name) LIKE '%в.', lower(w.name) LIKE '%озеро', lower(w.name) LIKE '%возера', lower(w.name) LIKE 'озёра%', lower(w.name) LIKE '%озёра', lower(w.name) LIKE 'п.%', lower(w.name) LIKE 'пр.%', lower(w.name) LIKE 'пруд%', lower(w.name) LIKE '%п.', lower(w.name) LIKE '%пр.', lower(w.name) LIKE '%пруд', lower(w.name) LIKE 'вдхр.%', lower(w.name) LIKE 'вдсх.%', lower(w.name) LIKE 'водохранилище%', lower(w.name) LIKE 'водасховішча%', lower(w.name) LIKE '%вдхр.', lower(w.name) LIKE '%вдсх.', lower(w.name) LIKE '%водохранилище', lower(w.name) LIKE '%водасховішча', lower(w.name) LIKE 'канал%', lower(w.name) LIKE '%канал', lower(w.name) LIKE 'р.%', lower(w.name) LIKE '%р.', lower(w.name) LIKE 'река%', lower(w.name) LIKE '%река' order by 1 desc;
count | name | water | waterway
-------+---------------------------------------------------------------+----------------------------------+-------------------------------------------------
165 | {Bug,"Bug / Буг",Артисловка} | {reservoir,river,riverbank,NULL} | {boatyard,dam,ditch,drain,oxbow,riverbank,weir}
6 | {"Белоозёрский канал","Гребной канал","Днепро-бугский канал"} | {NULL} | {riverbank}
1 | {"Комсомольское озеро"} | {NULL} | {riverbank}
1 | {оз.Клисячее} | {NULL} | {stream}
(4 rows)
У Беларусі line, tags->‘natural’=‘waterway’ AND name is not NULL:
select count(*), (array_agg(DISTINCT w.name))[0:3] AS name, (array_agg(DISTINCT w.tags->'water')) as water, (array_agg(DISTINCT w.tags->'waterway')) AS waterway from osm_line w inner join osm_polygon c on ST_Intersects(c.way, w.way) where c.osm_id = -59065 and w.tags ? 'waterway' AND w.name is not NULL group by lower(w.name) LIKE 'оз.%', lower(w.name) LIKE 'воз.%', lower(w.name) LIKE 'о.%', lower(w.name) LIKE 'в.%', lower(w.name) LIKE 'озеро%', lower(w.name) LIKE 'возера%', lower(w.name) LIKE '%оз.', lower(w.name) LIKE '%воз.', lower(w.name) LIKE '%о.', lower(w.name) LIKE '%в.', lower(w.name) LIKE '%озеро', lower(w.name) LIKE '%возера', lower(w.name) LIKE 'озёра%', lower(w.name) LIKE '%озёра', lower(w.name) LIKE 'п.%', lower(w.name) LIKE 'пр.%', lower(w.name) LIKE 'пруд%', lower(w.name) LIKE '%п.', lower(w.name) LIKE '%пр.', lower(w.name) LIKE '%пруд', lower(w.name) LIKE 'вдхр.%', lower(w.name) LIKE 'вдсх.%', lower(w.name) LIKE 'водохранилище%', lower(w.name) LIKE 'водасховішча%', lower(w.name) LIKE '%вдхр.', lower(w.name) LIKE '%вдсх.', lower(w.name) LIKE '%водохранилище', lower(w.name) LIKE '%водасховішча', lower(w.name) LIKE 'канал%', lower(w.name) LIKE '%канал', lower(w.name) LIKE 'р.%', lower(w.name) LIKE '%р.', lower(w.name) LIKE 'река%', lower(w.name) LIKE '%река' order by 1 desc;
count | name | water | waterway
-------+---------------------------------------------------------------------+--------+-------------------------------------------
6019 | {Aktica,Balbata,"Baltoji Ančia"} | {NULL} | {canal,dam,ditch,drain,river,stream,weir}
100 | {"1-й Марьинский канал","7-й Любанский канал","Августовский канал"} | {NULL} | {canal,ditch,drain,stream}
37 | {"канал Вец","канал Винец","канал Воловельский"} | {NULL} | {canal,ditch,drain,stream}
24 | {Прудец,Прудище,Прудница} | {NULL} | {river,stream}
11 | {р.Ботча,"р. Плиса",р.Тростянка} | {NULL} | {river,stream}
2 | {канал,Канал} | {NULL} | {drain}
1 | {Озеродка} | {NULL} | {river}
(7 rows)