orderByAgg returns an ordering by the aggregation of the given field.
(fn, field string, opts ...OrderTermOption)
| 371 | |
| 372 | // orderByAgg returns an ordering by the aggregation of the given field. |
| 373 | func orderByAgg(fn, field string, opts ...OrderTermOption) *OrderExprTerm { |
| 374 | return &OrderExprTerm{ |
| 375 | OrderTermOptions: *NewOrderTermOptions( |
| 376 | append( |
| 377 | // Default alias is "<func>_<field>". |
| 378 | []OrderTermOption{OrderAs(fmt.Sprintf("%s_%s", strings.ToLower(fn), field))}, |
| 379 | opts..., |
| 380 | )..., |
| 381 | ), |
| 382 | Expr: func(s *Selector) Querier { |
| 383 | var c string |
| 384 | switch { |
| 385 | case field == "*", isFunc(field): |
| 386 | c = field |
| 387 | default: |
| 388 | c = s.C(field) |
| 389 | } |
| 390 | return Raw(fmt.Sprintf("%s(%s)", fn, c)) |
| 391 | }, |
| 392 | } |
| 393 | } |
| 394 | |
| 395 | // OrderByRand returns a term to natively order by a random value. |
| 396 | func OrderByRand() func(*Selector) { |
no test coverage detected
searching dependent graphs…