The Perfion Query - HAVING

When creating customer specific catalogs or catalogs specific to other criteria (e.g. regional, customer groups, etc.) it is easiest done by creating a Master Catalog that includes everything, and then afterwards removing things that are not relevant for the more specific case.

Post filtering

The Perfion Where clauses are transformed into real SQL clauses against the underlying SQL database. The biggest difference from the Where clauses is that the Having clauses are not transformed into SQL statements but instead executed afterwards (in memory) on the result-set retrieved from the underlying SQL database.

This means that HAVING does not allow complex Features on Features or the Hierarchy-notation concept since both rely on data that is not found in the result-set.

Remote features

As opposed to the Where clauses, the Having clauses allows criteria on remote feature values (since they are working directly on the result-set).

Performance

Since the Having clauses work on the retrieved result set, it is important to get as many criteria into the Where clauses as possible in order to optimize performance.

Syntax

The syntax of the Having clauses are identical to the Where clauses. However, not all of the same operations are typically needed at this stage. The following operators are currently supported for the Having clauses.

=

!=

>=

<=

IN, NOT IN

HAS, NOT HAS