[Wranglers] NULL-safe GREATEST and LEAST now available in Snowflake

Ali, Saqib docbook.xml at gmail.com
Thu Mar 28 04:22:52 UTC 2024


Snowflake now supports GREATEST_IGNORE_NULLS and LEAST_IGNORE_NULLS. In the
past if you used LEAST or GREATEST on a list of expressions that contained
NULL these functions always returned NULL, which was very problematic. You
had to do something like COALESCE(GREATEST(BILL_DATE, SHIP_DATE),
SHIP_DATE, BILL_DATE) to correctly handle NULLs. This was cumbersome. Now
you can simply use GREATEST_IGNORE_NULLS or LEAST_IGNORE_NULLS. For e.g.

ORDERS_FACT
╔══════════════╤════════════╤════════════╗
║ ORDER_NUMBER    │ BILL_DATE           │         SHIP_DATE   ║
╠══════════════╪════════════╪════════════╣
║ 111                              │ 2023-01-01            │ 2023-01-05
     ║
╟──────────────┼────────────┼────────────╢
║ 222                             │ 2023-01-01            │ NULL
         ║
╚══════════════╧════════════╧════════════╝

SQL Query:
select
  order_number
  , greatest_ignore_nulls(bill_date, ship_date)
    as last_activity_date
from orders_fact;

Query Output:
╔══════════════╤════════════════════╗
║ ORDER_NUMBER    │ LAST_ACTIVITY_DATE            ║
╠══════════════╪════════════════════╣
║ 111                             │ 2023-01-05
   ║
╟──────────────┼────────────────────╢
║ 222                             │ 2023-01-01
   ║
╚══════════════╧════════════════════╝
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://analyticsengineering.net/pipermail/wranglers/attachments/20240327/88982833/attachment.htm>


More information about the Wranglers mailing list