Spark SQL查询指定连接日期的下一个最近的一次



' CREATE TABLECALL_ID INT,CALL_DATE日期);Insert into table_1 (call_id, call_date)值(1,'2022-10-22'),(2, ' 2022-10-31 '),(3, ' 2022-11-04 ');

CREATE TABLEPROD_ID INT,PROD_DATE日期);Insert into table_2 (prod_id, prod_date)值(1,'2022-10-25'),(2, ' 2022-11-17 ');

创建表CALL_ID INT,CALL_DATE日期,PROD_ID INT,PROD_DATE日期);Insert into table_result (call_id, call_date, prod_id, prod_date)Values (1, '2022-10-22', 1, '2022-10-25'),(2, '2022-10-31', null, null),(3, '2022-11-04', 2, '2022-11-17'); '

你能帮我创建TABLE_RESULT与一个连接在一个优雅的方式?这是一个很小的例子。由于

我解决了。谢谢。

SELECT * FROM (SELECT *, COALESCE(LEAD(CALL_DATE) OVER (PARTITION BY 1 ORDER BY CALL_DATE), CURRENT_DATE) AS CALL_DATE_NEXT FROM TABLE_1) AS A LEFT JOIN TABLE_2 AS B ON (A.CALL_DATE<=B.PROD_DATE AND A.CALL_DATE_NEXT>B.PROD_DATE)

相关内容

最新更新