Basics

Override: Select Variants

PostgreSQL overrides extend select helpers with object aliasing, distinct variants, and distinct-on clauses.

Select

Object entries are treated as column AS alias pairs.

const query = q
  .select(
    q.c("users.id"),
    { email: q.c("users.email") },
  )
  .from(q.t("users"))

Select Distinct

Use selectDistinct to emit SELECT DISTINCT.

const query = q
  .selectDistinct(q.c("users.email"))
  .from(q.t("users"))

Select Distinct On

PostgreSQL DISTINCT ON lets you keep the first row per grouping key.

const query = q
  .selectDistinctOn(
    [q.c("events.user_id")],
    [q.c("events.user_id"), q.c("events.created_at")],
  )
  .from(q.t("events"))