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 SET fias_id = (SELECT external_id FROM geo_objects_attributes WHERE id = (SELECT geo_id FROM geo_polygons WHERE simple_geometry && ST_Transform(ST_SetSRID(ST_Point(product_region.longitude::numeric, product_region.latitude::numeric), 4326), 3857) AND geo_objects.level = (SELECT MAX(level) FROM geo_objects))) WHERE fias_id IS NULL;

Questions about programming?Chat with your personal AI assistant