我有一个GIS层,它有数千个设备ID
我试图做的是分解(或分组)这个层,显示哪个设备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
预期结果:每个FacilityID有一行,其中包含最大缓冲区和特定区域类型。所以对于设施ID 1-我想要一行,它将是分区类型B,分区间距为2000
FacilityID,ZoneType, ZoneDistance
1 B 2000
2 C 600
我尝试了一些SQL语句,我得到了每个ZoneType的设备ID和最大zoneInstance。我只需要一个设备ID上所有分区类型的最大分区位置
SELECT max(ZoneDistance), ZoneType, FacilityID
FROM AllZones group by ZoneType, FacilityID;
我也尝试过一个子查询,但也不起作用
我对SQL还不太熟悉,而且我似乎无法找到获得结果的逻辑。SQL或Python中的答案
输出
在access中使用此示例。我准备了一个MySQL的演示
Achieving ROW_NUMBER / PARTITION BY in MS Access
SQL Fiddle Demo
输出
在我看到你的结果后,我找到了另一种方法
Second DEMO
输出
相关问题 更多 >
编程相关推荐