Sinds een tijdje ben ik bezig om mijn kennis van SQL op te vijzelen. Aangezien ik de ambitie heb om later ook kennis van Snowflake op te doen heb ik besloten SQL challenges in de Snowflake omgeving op te lossen. Tijdens het oplossen van een van deze challenges kwam ik achter het bestaan van QUALIFY. In dit blog leg ik je uit wat het kan en hoe je gebruik kunt maken van QUALIFY in Snowflake.

QUALIFY kun je net als WHERE en HAVING gebruiken om je resultaten te filteren. Waar je HAVING gebruikt om de resultaten na een GROUP BY te filteren kun je QUALIFY gebruiken om resultaten van window functions direct te filteren. Dit volgt ook uit onderstaande evaluatie volgorde van een SELECT statement die Snowflake in eigen documentatie heeft staan:

  1. From
  2. Where
  3. Group by
  4. Having
  5. Window
  6. QUALIFY
  7. Distinct
  8. Order by
  9. Limit

Het grote voordeel van QUALIFY is de overzichtelijkheid van je query. Normaal gesproken zou je met subqueries of CTE’s moeten werken om hetzelfde resultaat te bereiken. Nu hoef je enkel een extra keyword aan je query toe te voegen met een conditie waar je op wilt filteren.

Om gebruik te maken van QUALIFY moet er tenminste één window function gebruikt worden in:

  • de QUALIFY filter zelf
  • de SELECT kolom lijst

Dit is een vrij korte blog, wat goed aangeeft hoe makkelijk het is om gebruik te gaan maken van QUALIFY in Snowflake. Mocht je geintereseerd zijn in onze andere blogs dan kun je die hier vinden.