Structure
SQLDistinct
An expression representing the subexpression of an aggregate function call which specifies whether the aggregate groups over all result rows or only distinct rows.
struct SQLDistinct
Overview
This expression is another example of incomplete API design; it should properly be implemented as an expression called SQLAggregateFunction which includes the aggregate function name as part of the expression and allows specifying ORDER BY and FILTER clauses as supported by various dialects. An example of using it in the current implementation:
let count = try await database.select()
.column(SQLFunction("count", SQLDistinct(SQLColumn("column1"))), as: "count")
.first(decodingColumn: "count", as: Int.self)!
Topics
Initializers
init(_:)Create aDISTINCTexpression with a list of string identifiers.
Instance Properties
let args: [any SQLExpression]Zero or more identifiers and/or expressions to treat as a combined uniquing key.
Instance Methods
func serialize(to: inout SQLSerializer)Invoked when a request is made to serialize the expression to raw SQL.
Type Properties
static var all: SQLDistinctShorthand forSQLDistinct(SQLLiteral.all).
Relationships
Conforms To
SQLExpressionSwift.SendableSwift.SendableMetatype
See Also
Basic Expressions
struct SQLAliasEncapsulates SQL’s<expression> [AS] <name>syntax, most often used to declare aliaed names for columns and tables.struct SQLBetweenAnSQLExpressionwhich constructs SQL of the form<operand> BETWEEN <lowerBound> AND <upperBound>.struct SQLColumnAn expression representing an optionally table-qualified column in an SQL table.struct SQLConstraintAn expression representing the combination of a constraint name and algorithm for table constraints.enum SQLDataTypeRepresents a value’s type in SQL.enum SQLDirectionDescribes an ordering direction for a given sorting key.enum SQLForeignKeyActionAn expression specifying a behavior for a foreign key constraint violation.struct SQLNestedSubpathExpressionA “nested subpath” expression is used to descend into the “deeper” structure of a non-scalar value, such as a dictionary, array, or JSON value.struct SQLQualifiedTableAn expression representing an optionally second-level-qualified SQL table.struct SQLQueryStringAn expression consisting of an array of constituent subexpressions generated by custom string interpolations.