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
argsZero or more identifiers and/or expressions to treat as a combined uniquing key.
Instance Methods
serialize(to:)Invoked when a request is made to serialize the expression to raw SQL.
Type Properties
allShorthand forSQLDistinct(SQLLiteral.all).
Relationships
Conforms To
SQLExpressionSwift.SendableSwift.SendableMetatype
See Also
Basic Expressions
SQLAliasEncapsulates SQL’s<expression> [AS] <name>syntax, most often used to declare aliaed names for columns and tables.SQLBetweenAnSQLExpressionwhich constructs SQL of the form<operand> BETWEEN <lowerBound> AND <upperBound>.SQLColumnAn expression representing an optionally table-qualified column in an SQL table.SQLConstraintAn expression representing the combination of a constraint name and algorithm for table constraints.SQLDataTypeRepresents a value’s type in SQL.SQLDirectionDescribes an ordering direction for a given sorting key.SQLForeignKeyActionAn expression specifying a behavior for a foreign key constraint violation.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.SQLQualifiedTableAn expression representing an optionally second-level-qualified SQL table.SQLQueryStringAn expression consisting of an array of constituent subexpressions generated by custom string interpolations.