如何基于SQL中其他两个列的值添加新列?

时间:2020-09-11 15:25:06

标签: sql

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

SQL Example

目前,我只有从数据库生成的前两列。我需要添加额外的列,但是我不知道该如何实现SQL代码。

我对SQL还是很陌生,因此将不胜感激。

1 个答案:

答案 0 :(得分:1)

您可以使用窗口功能:

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;