where - Where specification
The WHERE clause describes a filter as precondition for filtering data in the FROM data source. The filter condition is an expression returning true or false, which must be defined in terms of the FROM operation data type, i.e. the expression for the condition may refer to properties defined in the data type of FROM instances. When a WHERE filter condition has been defined, instances in the FROM data source returning false will be ignored.
In an operation path, the WHERE operation always applies on the preceding collection, i.e. in this case, the distinction between WHERE and HAVING becomes obsolete.
The WHERE operation will not alter the data type of the instances, i.e. the output instances for the operation have the same data type as the input. This is also valid for the collection attributes (e.g. weak-typed or sort order).