I think you expression in the action that sets the values of column number in the grandparent table could be something like
COUNT(SELECT(Grand Child Table [Grand Child table Key column], IN([Key column of Parent Table],[Related Parents column in the Grandparent Table] )))
Edit: This action can invoke on each save of the parent form but will change the count only based on number of grand child records. So if there is no addition to the grand child records, the action will simply write the same number again in the field. So you need not have any condition to invoke the action on the parent table.
User | Count |
---|---|
16 | |
7 | |
6 | |
3 | |
3 |