diff --git a/lib/clients/ValueCounts.ts b/lib/clients/ValueCounts.ts index 309fff3..fecd1f6 100644 --- a/lib/clients/ValueCounts.ts +++ b/lib/clients/ValueCounts.ts @@ -113,10 +113,24 @@ export class ValueCounts extends MosaicClient { } clause(value?: T): SelectionClause { - let update = value === "__quak_null__" ? null : value; - return clausePoint(this.#column, update, { - source: this, - }); + if (value === "__quak_unique__") { + return { + source: this, + value: undefined, + predicate: sql`${column(this.#column)} IN ( + SELECT ${column(this.#column)} + FROM ${this.#table} + GROUP BY ${column(this.#column)} + HAVING COUNT(*) = 1 + )`, + }; + } + + return clausePoint( + this.#column, + value === "__quak_null__" ? null : value, + { source: this }, + ); } reset() {