QGIS - 表达式过滤器不起作用 - 特征数量永远不对

问题描述 投票:0回答:1

我正在 shapefile 图层上配置默认值,并且在尝试计算“num_etude”字段中相同特征的数量时遇到问题。

当我添加具有相同“num_etude”的新功能时,它要么找不到,要么总是找到,具体取决于我如何设置识别相同功能的标准。

我不确定QGIS如何计算特征数量。.

这是我使用过的代码片段:

aggregate(layer:= 'ZONE_ETUDE', aggregate:='count', expression:= "num_etude", filter:= "num_etude" is not null)
aggregate(layer:= 'ZONE_ETUDE', aggregate:='count', expression:= "num_etude", filter:= "num_etude" = coalesce("num_etude",0))
aggregate(layer:= 'ZONE_ETUDE', aggregate:='count', expression:= "num_etude", filter:= "num_etude" = "num_etude")

无论我在“num_etude”字段中输入什么值,结果始终为 1。

如果没有现有的等效特征,我希望该值更新为 0,如果只有一个,则更新为 1,如果有多个相同的特征,则更新为 2 或更多。

了解这里出了什么问题将帮助我解决整个问题。之后。

count aggregate expression qgis
1个回答
0
投票

抱歉,我必须再次询问才能理解这个问题..

所以我认为解决方案是:

aggregate(layer:= @layer, aggregate:='count', expression:= "num_etude", filter:= "num_etude" = attribute(@parent, 'num_etude'))

完整代码:

    if(
aggregate(
    layer:= @layer,
    aggregate:='count',
    expression:= "num_etude",
    filter:= "num_etude" = attribute(@parent, 'num_etude')
) = 0, rand(1, 100000),attribute(get_feature('ZONE_ETUDE', 'num_etude', "num_etude"), 'id'))
© www.soinside.com 2019 - 2024. All rights reserved.