我正在 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 或更多。
了解这里出了什么问题将帮助我解决整个问题。之后。
抱歉,我必须再次询问才能理解这个问题..
所以我认为解决方案是:
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'))