1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.mybatis.dynamic.sql.select.aggregate;
17
18 import org.mybatis.dynamic.sql.BasicColumn;
19 import org.mybatis.dynamic.sql.BindableColumn;
20 import org.mybatis.dynamic.sql.render.RenderingContext;
21 import org.mybatis.dynamic.sql.select.function.AbstractUniTypeFunction;
22 import org.mybatis.dynamic.sql.util.FragmentAndParameters;
23
24 public class Avg<T> extends AbstractUniTypeFunction<T, Avg<T>> {
25
26 private Avg(BasicColumn column) {
27 super(column);
28 }
29
30 @Override
31 public FragmentAndParameters render(RenderingContext renderingContext) {
32 return column.render(renderingContext).mapFragment(s -> "avg(" + s + ")");
33 }
34
35 @Override
36 protected Avg<T> copy() {
37 return new Avg<>(column);
38 }
39
40 public static <T> Avg<T> of(BindableColumn<T> column) {
41 return new Avg<>(column);
42 }
43 }