beliefer opened a new pull request #30943:
URL: https://github.com/apache/spark/pull/30943


   ### What changes were proposed in this pull request?
   All of `LEAD`/`LAG`/`NTH_VALUE`/`FIRST_VALUE`/`LAST_VALUE` should support 
IGNORE NULLS | RESPECT NULLS. For example:
   ```
   LEAD (value_expr [, offset ])
   [ IGNORE NULLS | RESPECT NULLS ]
   OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )
   ```
   
   ```
   LAG (value_expr [, offset ])
   [ IGNORE NULLS | RESPECT NULLS ]
   OVER ( [ PARTITION BY window_partition ] ORDER BY window_ordering )
   ```
   
   ```
   NTH_VALUE (expr, offset)
   [ IGNORE NULLS | RESPECT NULLS ]
   OVER
   ( [ PARTITION BY window_partition ]
   [ ORDER BY window_ordering 
    frame_clause ] )
   ```
   
   The mainstream database or engine supports this syntax contains:
   **Oracle**
   
https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/NTH_VALUE.html#GUID-F8A0E88C-67E5-4AA6-9515-95D03A7F9EA0
   
   **Redshift**
   https://docs.aws.amazon.com/redshift/latest/dg/r_WF_NTH.html
   
   **Presto**
   https://prestodb.io/docs/current/functions/window.html
   
   **DB2**
   
https://www.ibm.com/support/knowledgecenter/SSGU8G_14.1.0/com.ibm.sqls.doc/ids_sqs_1513.htm
   
   **Teradata**
   https://docs.teradata.com/r/756LNiPSFdY~4JcCCcR5Cw/GjCT6l7trjkIEjt~7Dhx4w
   
   **Snowflake**
   https://docs.snowflake.com/en/sql-reference/functions/lead.html
   https://docs.snowflake.com/en/sql-reference/functions/lag.html
   
   ### Why are the changes needed?
   Support (IGNORE | RESPECT) NULLS for 
LEAD/LAG/NTH_VALUE/FIRST_VALUE/LAST_VALUE is very useful.
   
   
   ### Does this PR introduce _any_ user-facing change?
   Yes.
   
   
   ### How was this patch tested?
   Jenkins test
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to