The author of this article explores whether there is a performance impact of using FILTER in SQL, specifically PostgreSQL, or if it is just syntax sugar for a CASE expression in an aggregate function.
While the two types of aggregate function expressions can be proven to mean exactly the same thing, the author ran a benchmark comparing the performance of using FILTER versus CASE, and found that there is a consistent 8% performance penalty for using the CASE syntax compared to the FILTER syntax.
The article concludes that while in a perfect world two provably equivalent SQL syntaxes would also perform the same way, this isn't always the case in the real world where optimizers make tradeoffs between time spent optimizing rare syntaxes and time spent executing queries. The author recommends using FILTER as it is already better performing and better looking.
















