diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index be08eb4814..8eea59d5a3 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -3647,14 +3647,14 @@ estimate_num_groups(PlannerInfo *root, List *groupExprs, double input_rows,
 					(1 - pow((rel->tuples - rel->rows) / rel->tuples,
 							 rel->tuples / reldistinct));
 			}
-			reldistinct = clamp_row_est(reldistinct);
-
-			/*
-			 * Update estimate of total distinct groups.
-			 */
-			numdistinct *= reldistinct;
 		}
 
+		/*
+		 * Update estimate of total distinct groups.
+		 */
+		reldistinct = clamp_row_est(reldistinct);
+		numdistinct *= reldistinct;
+
 		varinfos = newvarinfos;
 	} while (varinfos != NIL);
 
