首页 > 解决方案 > 如何根据 SQL 中其他两列的值添加新列?

问题描述

我有下表(见附件)。我想生成 SQL 代码,st 如果任何学校在第 3 阶段开始,学校将获得 1 的值。如果学校也经历了第 1 阶段或第 2 阶段(或两者),则该值应为 0。

SQL 示例

目前,我只有从数据库生成的前 2 列。我需要包含额外的列,但我不知道如何为此实现 SQL 代码。

我对 SQL 很陌生,因此将不胜感激任何帮助。

标签: sql

解决方案


您可以使用窗口函数:

select t.*,
       min(case when phase in ('Phase1', 'Phase2') then 0
                when phase = 'Phase3' then 1
           end) over (partition by school) as new_column
from t;

推荐阅读