DISTINCT keeps one representative per projected row.

highlighted = computed this step

Full-row duplicate removal

After projection, DISTINCT removes repeated projected rows.

remove repeated rows\text{remove repeated rows}

Read duplicate drops

The compiler drops 3 duplicate projected rows.

duplicate drops=3\text{duplicate drops}=3

DISTINCT examples are tiny finite bag-to-table transforms; this model shows first-seen representatives for deterministic display and does not claim product SQL output ordering.

Full-row duplicate removal: bag input rowsidcitystatus1Austinopen2Austinopen3Bostonclosed4Austinclosed5NULLopen6NULLopen WHERE then SELECT projectionsourceinputwhereTruthprojectedRowdistinctRole0[1, Austin, open]TRUE[Austin]representative1[2, Austin, open]TRUE[Austin]duplicate2[3, Boston, closed]TRUE[Boston]representative3[4, Austin, closed]TRUE[Austin]duplicate4[5, NULL, open]TRUE[NULL]representative5[6, NULL, open]TRUE[NULL]duplicate DISTINCT groupskeysourcesrepresentativeSourceduplicateCount[Austin][0, 1, 3]02[Boston][2]20[NULL][4, 5]41 DISTINCT output rowscityAustinBostonNULL DISTINCT factsfactvalueinputRowCount6whereKeptRows6whereDroppedRows0projectedRowCount6distinctRowCount3duplicateDropCount3nullKeyRows2selectColumnCount1representativeOrderfirst_seen_model_order_not_sql_order_claim

One representative remains

Each duplicate group keeps one displayed representative in this finite model.

one representative\text{one representative}

Summary

DISTINCT keeps one row per projected-row group.

one per group\text{one per group}