hivesql条件下的交叉连接问题

xfyts7mz  于 2021-06-24  发布在  Hive
关注(0)|答案(1)|浏览(329)

奇妙的宇宙编码者,我有一个问题:
我正在编写一个hivesql脚本,我想知道是否有可能在一个条件下交叉连接(下面的条件是dayofweek是星期五),或者是否有一个性能灯替代我下面所做的工作。我只需要在星期五的日期中添加两行,这只是星期六和星期天的星期五日期数据的一个持久化。我得到一个关于连接条件的错误,但是我想知道是否有可能绕过它。
很明显,下面编写查询的方式给了我一个错误(特别是dayofweek(performance\u end\u date)=6)。只是想知道是否有一种方法来写这个语法将被接受。
请告知。

select 
portfolio_name
,Cast(Date_add(a.performance_end_date, crs.crs) AS TIMESTAMP) AS performance_end_date 
,return
,nav
,nav_id
,row_no

from
(
SELECT portfolio_name, performance_end_date, return, cast(cast(nav as decimal(20,2))as string) as nav, nav_id
,row_number() over (partition by a.portfolio_code,a.performance_end_date order by a.nav_id desc) as row_no
FROM carsales a
WHERE  
portfolio_code IN ('1994','2078','2155','2365','2367')
and
year=2020 and month=09

) a

CROSS JOIN (SELECT stack(2, 1,2) as crs) crs     and DAYOFWEEK(performance_end_date) = 6
           where a.row_no = 1
nx7onnlm

nx7onnlm1#

交叉连接没有“连接条件”,所以将条件移到where子句

CROSS JOIN (SELECT stack(2, 1,2) as crs) crs
           where a.row_no = 1 and DAYOFWEEK(performance_end_date) = 6

相关问题