首页 > 解决方案 > 将子查询更改为 windows 功能

问题描述

我有一个表我想添加一个新列来创建新功能我有我的查询我认为它会起作用但我仍在努力解决它有些人建议我使用 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 函数或某些不同的形式,但不是在子查询形式中。

标签: mysqlsqlwindow-functions

解决方案


推荐阅读