У меня есть слой ГИС, который имеет тысячи идентификаторов объектов.Синтаксис логики запросов SQL-запроса GIS
- Для каждого идентификатора объекта может быть несколько химических идентификаторов.
- Для каждого химического идентификатора существует не более трех типов зон. Зона A, B, C. Но не всегда есть 3 типа зон, они меняются.
- И количество химических идентификаторов для каждого идентификатора объекта может варьироваться от 1 до многих.
То, что я пытаюсь сделать, это Растворите (или группу по) этому слою вниз, чтобы отобразить который Facility ID зона имеет большой буфер расстояние, в том числе ZoneType (важный)
Вот поля
FacilityID, ChemicalID, ZoneType, ZoneDistance
ex rows: 1 2 A 1000
1 2 B 900
1 2 C 500
1 5 A 1200
1 5 B 900
1 7 B 2000
1 7 C 900
2 13 A 200
2 13 B 300
2 13 C 600
ожидаемый результат: 1 строка для каждого идентификатора FacilityID с максимальным буфером и определенным типом зоны. Таким образом, для FacilityID 1- Я хочу одну строку, и было бы ZoneType B с ZoneDistance в 2000
FacilityID,ZoneType, ZoneDistance
1 B 2000
2 C 600
Я попробовал несколько SQL заявление, которое я получил Facility ID с Максом ZoneDistance для каждого ZoneType. Я просто хочу Max ZoneDistance для всех типов зон в FacilityID.
SELECT max(ZoneDistance), ZoneType, FacilityID
FROM AllZones group by ZoneType, FacilityID;
Я также попытался подзапрос, но это не сработало
Я пол нового для SQL, и я не могу показаться, чтобы выяснить логику, чтобы получить свои результаты. Ответы приветствовали в SQL или Python
какие функции ГИС вы используете? Сервер Sql, Postgres, Oracle? –
'Max (ZoneDistance)' Средняя буферная область, охватывающая все «ZoneType» от каждого объекта? –
Я использую Microsoft Access – ziggy