code: public function filterHaving(array $condition)
      {
          $condition = $this->filterCondition($condition);
          if ($condition !== []) {
              $this->having($condition);
          }
  
          return $this;
      }
docs: Sets the HAVING part of the query but ignores [[isEmpty()|empty operands]].
  
  This method is similar to [[having()]]. The main difference is that this method will
  remove [[isEmpty()|empty query operands]]. As a result, this method is best suited
  for building query conditions based on filter values entered by users.
  
  The following code shows the difference between this method and [[having()]]:
  
  ```php
  // HAVING `age`=:age
  $query->filterHaving(['name' => null, 'age' => 20]);
  // HAVING `age`=:age
  $query->having(['age' => 20]);
  // HAVING `name` IS NULL AND `age`=:age
  $query->having(['name' => null, 'age' => 20]);
  ```
  
  Note that unlike [[having()]], you cannot pass binding parameters to this method.
  
  @param array $condition the conditions that should be put in the HAVING part.
  See [[having()]] on how to specify this parameter.
  @return $this the query object itself
  @see having()
  @see andFilterHaving()
  @see orFilterHaving()
  @since 2.0.11