I created a virtual field in my layer where I want a specific value to be calculated. In my attribute table I have several columns. The expression I am trying to create is the following. I want to iterate through all features and add all values of the column age
who have a specific value, let's say the name of the features should be marc. In my first attempt I created this:
CASE WHEN "name" = "marc" THEN sum( "age" ) END
But it kinda doesn't work and I don't know how to iterate though all features in the layer and only choose those features with the name marc. Any advice?
1 Answer 1
You could use something like the following:
sum( "age", "name", "name" = 'marc' )
Where:
"age"
is the field used to calculate the sum;"name"
is the field used to group the different names together;"name" = 'marc'
is the expression used to filter all names in thename
field which equalmarc
.
-
1It's better to update your answer to use 'marc' in 'c' since the asker modified his question.ahmadhanb– ahmadhanb2017年12月07日 11:36:24 +00:00Commented Dec 7, 2017 at 11:36
-
In the expression builder I can see the right output, but when I try to get the value from my python script I always get
None
. Any ideas? Or should I post another question about this?Blinxen– Blinxen2017年12月07日 11:51:33 +00:00Commented Dec 7, 2017 at 11:51 -
@Blinxen - I think you should post another question and include the script you used otherwise it is difficult to tell where the problem is :)Joseph– Joseph2017年12月07日 11:53:20 +00:00Commented Dec 7, 2017 at 11:53
-
1I created a new question and posted it.Blinxen– Blinxen2017年12月07日 12:25:07 +00:00Commented Dec 7, 2017 at 12:25
mark
in the field, you will sum the entire field including those features which do not havemark
:)