@Override
  public void addInput(Column[] column, BitMap bitMap) {
    checkArgument(column.length == 3, "Length of input Column[] for MaxBy/MinBy should be 3");
    switch (yDataType) {
      case INT32:
      case DATE:
        addIntInput(column, bitMap);
        return;
      case INT64:
      case TIMESTAMP:
        addLongInput(column, bitMap);
        return;
      case FLOAT:
        addFloatInput(column, bitMap);
        return;
      case DOUBLE:
        addDoubleInput(column, bitMap);
        return;
      case STRING:
        addBinaryInput(column, bitMap);
        return;
      case TEXT:
      case BLOB:
      case BOOLEAN:
      default:
        throw new UnSupportedDataTypeException(String.format(UNSUPPORTED_TYPE_MESSAGE, yDataType));
    }
  }
max(x,y) returns the value of x associated with the maximum value of y over all input values.
iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/execution/aggregation/MaxMinByBaseAccumulator.java