QGIS中使用表达式从重复NAME值筛选对应最新DATE的记录
QGIS表达式筛选每个NAME对应的最新DATE记录
正确的筛选表达式
直接使用带分组参数的maximum函数即可实现需求,无需复杂的数组聚合操作:
"DATE" = maximum("DATE", group_by:="NAME")
表达式说明
maximum("DATE", group_by:="NAME"):按NAME字段分组,计算每个分组内DATE字段的最大值(即最新日期)- 整个表达式判断当前记录的
DATE是否等于其所属NAME分组的最大日期,满足条件的记录会被筛选出来,最终得到每个NAME对应的最新DATE记录
原表达式的问题分析
- 未按分组取最大值:原表达式中
maximum("DATE")未指定group_by:="NAME",获取的是整个图层的全局最大日期,无法匹配每个NAME的最新日期 - 冗余且语法错误的逻辑:嵌套的
array_agg写法存在语法问题,且完全没必要通过数组聚合实现筛选,直接用分组最大值判断即可达成目标
内容的提问来源于stack exchange,提问作者Taís Alcântara
相关产品推荐
相关产品推荐

