奇妙的宇宙编码者,我有一个问题:
我正在编写一个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
1条答案
按热度按时间nx7onnlm1#
交叉连接没有“连接条件”,所以将条件移到where子句