@@ -11,7 +11,7 @@ public func abs(_ value: some SQLSpecificExpressible) -> SQLExpression {
1111}
1212
1313#if GRDBCUSTOMSQLITE || GRDBCIPHER
14- /// The `AVG` SQL function.
14+ /// The `AVG` SQL aggregate function.
1515///
1616/// For example:
1717///
@@ -26,7 +26,7 @@ public func average(
2626 . aggregateFunction( " AVG " , [ value. sqlExpression] , filter: filter? . sqlExpression)
2727}
2828#else
29- /// The `AVG` SQL function.
29+ /// The `AVG` SQL aggregate function.
3030///
3131/// For example:
3232///
@@ -44,7 +44,7 @@ public func average(
4444 filter: filter. sqlExpression)
4545}
4646
47- /// The `AVG` SQL function.
47+ /// The `AVG` SQL aggregate function.
4848///
4949/// For example:
5050///
@@ -147,8 +147,24 @@ public func length(_ value: some SQLSpecificExpressible) -> SQLExpression {
147147 . function( " LENGTH " , [ value. sqlExpression] )
148148}
149149
150+ /// The `MAX` SQL multi-argument function.
151+ ///
152+ /// For example:
153+ ///
154+ /// ```swift
155+ /// // MAX(score, 1000)
156+ /// max(Column("score"), 1000)
157+ /// ```
158+ public func max(
159+ _ value1: any SQLSpecificExpressible ,
160+ _ value2: any SQLExpressible ,
161+ _ values: any SQLExpressible ...
162+ ) -> SQLExpression {
163+ . simpleFunction( " MAX " , [ value1. sqlExpression, value2. sqlExpression] + values. map ( \. sqlExpression) )
164+ }
165+
150166#if GRDBCUSTOMSQLITE || GRDBCIPHER
151- /// The `MAX` SQL function.
167+ /// The `MAX` SQL aggregate function.
152168///
153169/// For example:
154170///
@@ -163,7 +179,7 @@ public func max(
163179 . aggregateFunction( " MAX " , [ value. sqlExpression] , filter: filter? . sqlExpression)
164180}
165181#else
166- /// The `MAX` SQL function.
182+ /// The `MAX` SQL aggregate function.
167183///
168184/// For example:
169185///
@@ -179,7 +195,7 @@ public func max(
179195 . aggregateFunction( " MAX " , [ value. sqlExpression] , filter: filter. sqlExpression)
180196}
181197
182- /// The `MAX` SQL function.
198+ /// The `MAX` SQL aggregate function.
183199///
184200/// For example:
185201///
@@ -192,8 +208,24 @@ public func max(_ value: some SQLSpecificExpressible) -> SQLExpression {
192208}
193209#endif
194210
211+ /// The `MIN` SQL multi-argument function.
212+ ///
213+ /// For example:
214+ ///
215+ /// ```swift
216+ /// // MIN(score, 1000)
217+ /// min(Column("score"), 1000)
218+ /// ```
219+ public func min(
220+ _ value1: any SQLSpecificExpressible ,
221+ _ value2: any SQLExpressible ,
222+ _ values: any SQLExpressible ...
223+ ) -> SQLExpression {
224+ . simpleFunction( " MIN " , [ value1. sqlExpression, value2. sqlExpression] + values. map ( \. sqlExpression) )
225+ }
226+
195227#if GRDBCUSTOMSQLITE || GRDBCIPHER
196- /// The `MIN` SQL function.
228+ /// The `MIN` SQL aggregate function.
197229///
198230/// For example:
199231///
@@ -208,7 +240,7 @@ public func min(
208240 . aggregateFunction( " MIN " , [ value. sqlExpression] , filter: filter? . sqlExpression)
209241}
210242#else
211- /// The `MIN` SQL function.
243+ /// The `MIN` SQL aggregate function.
212244///
213245/// For example:
214246///
@@ -224,7 +256,7 @@ public func min(
224256 . aggregateFunction( " MIN " , [ value. sqlExpression] , filter: filter. sqlExpression)
225257}
226258
227- /// The `MIN` SQL function.
259+ /// The `MIN` SQL aggregate function.
228260///
229261/// For example:
230262///
@@ -238,7 +270,7 @@ public func min(_ value: some SQLSpecificExpressible) -> SQLExpression {
238270#endif
239271
240272#if GRDBCUSTOMSQLITE || GRDBCIPHER
241- /// The `SUM` SQL function.
273+ /// The `SUM` SQL aggregate function.
242274///
243275/// For example:
244276///
@@ -262,7 +294,7 @@ public func sum(
262294 filter: filter? . sqlExpression)
263295}
264296#else
265- /// The `SUM` SQL function.
297+ /// The `SUM` SQL aggregate function.
266298///
267299/// For example:
268300///
@@ -284,7 +316,7 @@ public func sum(
284316 filter: filter. sqlExpression)
285317}
286318
287- /// The `SUM` SQL function.
319+ /// The `SUM` SQL aggregate function.
288320///
289321/// For example:
290322///
@@ -302,7 +334,7 @@ public func sum(_ value: some SQLSpecificExpressible) -> SQLExpression {
302334#endif
303335
304336#if GRDBCUSTOMSQLITE || GRDBCIPHER
305- /// The `TOTAL` SQL function.
337+ /// The `TOTAL` SQL aggregate function.
306338///
307339/// For example:
308340///
@@ -326,7 +358,7 @@ public func total(
326358 filter: filter? . sqlExpression)
327359}
328360#else
329- /// The `TOTAL` SQL function.
361+ /// The `TOTAL` SQL aggregate function.
330362///
331363/// For example:
332364///
@@ -348,7 +380,7 @@ public func total(
348380 filter: filter. sqlExpression)
349381}
350382
351- /// The `TOTAL` SQL function.
383+ /// The `TOTAL` SQL aggregate function.
352384///
353385/// For example:
354386///
0 commit comments