我有一个表,我想添加一个新列以创建新功能,我有我的查询,我认为它可以工作,但是我仍然在努力解决这个问题,有人建议我使用Windows功能并完成此工作,但是我我完全困惑如何完成它。
SELECT
*,
case WHEN lagged_bool = 'NULL' THEN
(case WHEN qty < 5000 THEN
'TRUE'
ELSE
'FALSE'
END)
ELSE
lagged_bool
END AS predicting_bool
FROM (
SELECT
*,
CASE WHEN oute.predicted_bool = 'CONFUSED' THEN
(
SELECT
first_value(inter.predicted_bool) over (partition by oute.id_partners, oute.id_accounts ORDER BY inter.dt_metrics_us desc)
FROM sandbox.dlpred_7_csv AS inter
WHERE inter.predicted_bool IN ('TRUE','FALSE')
)
ELSE
'NULL'
END AS lagged_venue
FROM sandbox.dl_pred_7_csv AS oute
)
我希望将上述查询转换为等效于Windows函数或其他不同形式,但不转换为子查询形式。