如何使用Field Calculator实现跨图层按关联字段匹配求和
QGIS 字段计算器跨图层求和操作步骤
- 前置校验:确认Countries图层
Name字段、Settlements图层Owner_Name字段为相同文本格式,提前清理字段值的首尾空格、大小写差异,避免匹配失效。 - 打开Countries图层属性表,点击字段计算器按钮,勾选创建新字段,字段名称输入
Population,字段类型根据要统计的数值精度选择整数/浮点数,设置合适的字段长度。 - 在表达式输入框中填入以下内容,将
[Settlements层数值字段名]替换为你Settlements图层中存储人口数值的实际字段名:aggregate('Settlements', 'sum', "[Settlements层数值字段名]", filter:= "Owner_Name" = attribute(@parent, 'Name'))
函数说明:
aggregate是QGIS内置的跨图层统计函数,参数依次为统计目标图层名、统计方法、要统计的字段、匹配过滤条件,@parent指代当前执行计算的Countries图层的当前行,可自动逐行匹配对应国家的 settlements 记录求和。
- 点击确定执行计算,完成后可抽查几条记录校验求和结果是否正确。
ArcGIS 字段计算器跨图层求和操作步骤
- 先建立图层关联:右键点击Countries图层,选择连接和关联→添加连接,连接字段选Countries图层的
Name,要连接的表选择Settlements图层,连接表字段选Owner_Name,连接类型设置为一对多。 - 打开Countries图层属性表的字段计算器,新建
Population字段,字段类型选择整数/浮点数,表达式输入如下,替换实际数值字段名:sum(!Settlements.[实际数值字段名]!) - 确认执行后即可完成计算,计算完成后可按需移除图层关联。
内容的提问来源于stack exchange,提问作者Ben Bowles
相关产品推荐
相关产品推荐

