将子查询更改为Windows功能

时间:2019-05-10 05:38:57

标签: mysql sql window-functions

我有一个表,我想添加一个新列以创建新功能,我有我的查询,我认为它可以工作,但是我仍然在努力解决这个问题,有人建议我使用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函数或其他不同形式,但不转换为子查询形式。

0 个答案:

没有答案