code: def having(self, column, operator=None, value=None, boolean="and"):
          
          type = "basic"
  
          self.havings.append(
              {
                  "type": type,
                  "column": column,
                  "operator": operator,
                  "value": value,
                  "boolean": boolean,
              }
          )
  
          if not isinstance(value, QueryExpression):
              self.add_binding(value, "having")
  
          return self
docs: Add a "having" clause to the query
  
          :param column: The column
          :type column: str
  
          :param operator: The having clause operator
          :type operator: str
  
          :param value: The having clause value
          :type value: mixed
  
          :param boolean: Boolean joiner type
          :type boolean: str
  
          :return: The current QueryBuilder instance
          :rtype: QueryBuilder