QGIS 3.22同一图层按土地覆被代码区间统计要素数量方法
方法1:先打区间标签再统计(操作简单,不易出错)
- 打开图层属性表,点击字段计算器,新建一个文本类型的字段,字段名可以设为
区间分类 - 表达式框输入以下内容,记得把
land_code替换为你实际的土地覆被代码字段名,区间可以按你的需求自行增改:
CASE WHEN "land_code" >= 111 AND "land_code" <= 113 THEN '111-113' WHEN "land_code" >= 114 AND "land_code" <= 222 THEN '114-222' ELSE '其他' END
- 点击确定完成字段计算后,在处理工具箱搜索按类别统计工具,分组字段选择刚创建的
区间分类字段,统计方式选择count,运行后即可得到每个区间的要素总数。
方法2:直接用aggregate函数统计(适合将统计值存入属性表字段)
如果你需要把每个要素对应区间的总数量直接存入属性字段,正确的aggregate函数写法如下:
aggregate( layer:=@layer, aggregate:='count', expression:=$id, filter:= CASE WHEN "land_code" >=111 AND "land_code" <=113 THEN "land_code" between 111 and 113 WHEN "land_code" >=114 AND "land_code" <=222 THEN "land_code" between 114 and 222 ELSE FALSE END )
如果只需要统计单个区间的数量,直接把filter条件改成对应区间的判断语句即可
常见问题排查
- 如果你的代码字段是文本格式,需要把判断值加单引号,比如
"land_code" >= '111' - 字段名必须用双引号包裹,字符串值用单引号包裹,符号写错会导致表达式运行失败
内容的提问来源于stack exchange,提问作者Robagb
相关产品推荐
相关产品推荐

