@@ -11,7 +11,7 @@ public func abs(_ value: some SQLSpecificExpressible) -> SQLExpression {
11
11
}
12
12
13
13
#if GRDBCUSTOMSQLITE || GRDBCIPHER
14
- /// The `AVG` SQL function.
14
+ /// The `AVG` SQL aggregate function.
15
15
///
16
16
/// For example:
17
17
///
@@ -26,7 +26,7 @@ public func average(
26
26
. aggregateFunction( " AVG " , [ value. sqlExpression] , filter: filter? . sqlExpression)
27
27
}
28
28
#else
29
- /// The `AVG` SQL function.
29
+ /// The `AVG` SQL aggregate function.
30
30
///
31
31
/// For example:
32
32
///
@@ -44,7 +44,7 @@ public func average(
44
44
filter: filter. sqlExpression)
45
45
}
46
46
47
- /// The `AVG` SQL function.
47
+ /// The `AVG` SQL aggregate function.
48
48
///
49
49
/// For example:
50
50
///
@@ -147,8 +147,24 @@ public func length(_ value: some SQLSpecificExpressible) -> SQLExpression {
147
147
. function( " LENGTH " , [ value. sqlExpression] )
148
148
}
149
149
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
+
150
166
#if GRDBCUSTOMSQLITE || GRDBCIPHER
151
- /// The `MAX` SQL function.
167
+ /// The `MAX` SQL aggregate function.
152
168
///
153
169
/// For example:
154
170
///
@@ -163,7 +179,7 @@ public func max(
163
179
. aggregateFunction( " MAX " , [ value. sqlExpression] , filter: filter? . sqlExpression)
164
180
}
165
181
#else
166
- /// The `MAX` SQL function.
182
+ /// The `MAX` SQL aggregate function.
167
183
///
168
184
/// For example:
169
185
///
@@ -179,7 +195,7 @@ public func max(
179
195
. aggregateFunction( " MAX " , [ value. sqlExpression] , filter: filter. sqlExpression)
180
196
}
181
197
182
- /// The `MAX` SQL function.
198
+ /// The `MAX` SQL aggregate function.
183
199
///
184
200
/// For example:
185
201
///
@@ -192,8 +208,24 @@ public func max(_ value: some SQLSpecificExpressible) -> SQLExpression {
192
208
}
193
209
#endif
194
210
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
+
195
227
#if GRDBCUSTOMSQLITE || GRDBCIPHER
196
- /// The `MIN` SQL function.
228
+ /// The `MIN` SQL aggregate function.
197
229
///
198
230
/// For example:
199
231
///
@@ -208,7 +240,7 @@ public func min(
208
240
. aggregateFunction( " MIN " , [ value. sqlExpression] , filter: filter? . sqlExpression)
209
241
}
210
242
#else
211
- /// The `MIN` SQL function.
243
+ /// The `MIN` SQL aggregate function.
212
244
///
213
245
/// For example:
214
246
///
@@ -224,7 +256,7 @@ public func min(
224
256
. aggregateFunction( " MIN " , [ value. sqlExpression] , filter: filter. sqlExpression)
225
257
}
226
258
227
- /// The `MIN` SQL function.
259
+ /// The `MIN` SQL aggregate function.
228
260
///
229
261
/// For example:
230
262
///
@@ -238,7 +270,7 @@ public func min(_ value: some SQLSpecificExpressible) -> SQLExpression {
238
270
#endif
239
271
240
272
#if GRDBCUSTOMSQLITE || GRDBCIPHER
241
- /// The `SUM` SQL function.
273
+ /// The `SUM` SQL aggregate function.
242
274
///
243
275
/// For example:
244
276
///
@@ -262,7 +294,7 @@ public func sum(
262
294
filter: filter? . sqlExpression)
263
295
}
264
296
#else
265
- /// The `SUM` SQL function.
297
+ /// The `SUM` SQL aggregate function.
266
298
///
267
299
/// For example:
268
300
///
@@ -284,7 +316,7 @@ public func sum(
284
316
filter: filter. sqlExpression)
285
317
}
286
318
287
- /// The `SUM` SQL function.
319
+ /// The `SUM` SQL aggregate function.
288
320
///
289
321
/// For example:
290
322
///
@@ -302,7 +334,7 @@ public func sum(_ value: some SQLSpecificExpressible) -> SQLExpression {
302
334
#endif
303
335
304
336
#if GRDBCUSTOMSQLITE || GRDBCIPHER
305
- /// The `TOTAL` SQL function.
337
+ /// The `TOTAL` SQL aggregate function.
306
338
///
307
339
/// For example:
308
340
///
@@ -326,7 +358,7 @@ public func total(
326
358
filter: filter? . sqlExpression)
327
359
}
328
360
#else
329
- /// The `TOTAL` SQL function.
361
+ /// The `TOTAL` SQL aggregate function.
330
362
///
331
363
/// For example:
332
364
///
@@ -348,7 +380,7 @@ public func total(
348
380
filter: filter. sqlExpression)
349
381
}
350
382
351
- /// The `TOTAL` SQL function.
383
+ /// The `TOTAL` SQL aggregate function.
352
384
///
353
385
/// For example:
354
386
///
0 commit comments