ANTON KADACH

Generation

text to sql syntaxTue, 17 Jan 2023

Geo_objects(id, level) geo_objects_attributes(id, name) geo_polygons(geo_id, simple_geometry) product_region(longitude, latitude, fias_id) запрос, который находит гео-объекты максимального level по координатам долготе и широте через функции ST_Intersects(gp.simple_geometry , ST_Transform(ST_SetSRID(ST_Point(p.longitude::numeric, p.latitude::numeric), 4326), 3857)) в таблице geo_polygons и обновляет поле "fias_id" значением из поля external_id таблицы geo_objects_attributes в таблице product_region. в одну строку Язык postgresql

UPDATE product_region p SET fias_id = (SELECT goa.external_id FROM geo_objects go, geo_polygons gp, geo_objects_attributes goa WHERE go.id = gp.geo_id AND go.id = goa.id AND go.level IN (SELECT max(level) FROM geo_objects WHERE ST_Intersects(gp.simple_geometry , ST_Transform(ST_SetSRID(ST_Point(p.longitude::numeric, p.latitude::numeric), 4326), 3857))) AND ST_Intersects(gp.simple_geometry , ST_Transform(ST_SetSRID(ST_Point(p.longitude::numeric, p.latitude::numeric), 4326), 3857)));

Questions about programming?Chat with your personal AI assistant