lag method

  1. @override
QueryBuilder lag(
  1. String column, {
  2. int offset = 1,
  3. dynamic defaultValue,
  4. String? partitionBy,
  5. String? orderBy,
  6. String? as,
})
inherited

Implementation

@override
QueryBuilder lag(
  String column, {
  int offset = 1,
  dynamic defaultValue,
  String? partitionBy,
  String? orderBy,
  String? as,
}) {
  if (column.isEmpty) {
    throw InvalidArgumentException(
        'Column name cannot be empty for LAG function');
  }

  String lagFunc = "LAG($column, $offset";
  if (defaultValue != null) {
    if (defaultValue is String) {
      lagFunc += ", '$defaultValue'";
    } else {
      lagFunc += ", $defaultValue";
    }
  }
  lagFunc += ")";

  final overClause =
      _buildOverClause(partitionBy: partitionBy, orderBy: orderBy);
  _addWindowFunction(lagFunc, overClause, as);
  return this;
}