条件 MAX(date_x) = YEAR(current_date) Teradata,SQL

Condition MAX(date_x) = YEAR(current_date) Teradata, SQL

我正在处理数据集。我想创建一个声明:

如果一个人的观察结果为 MAX(date_x) = YEAR(current_date),那么它将在所有行上 return TRUE(1),也包括去年和前年。

如果一个人没有观察到 MAX(date_x) = YEAR(current_date),则所有行都为 FALSE(0)。

这可能吗?非常感谢!

这是输出的示例,因为 Mike 和 Ofelia 在 2021 年有行,所以他们所有的行的值都是 1

这可以使用子查询来完成,以获取每个人的最大日期,然后是案例语句

SELECT
 t1.*
,CASE
     WHEN EXTRACT(YEAR FROM MAX_DATE) = EXTRACT(YEAR FROM CURRENT_DATE)
     THEN 'True'
     ELSE 'False'
     END AS CURRENT_YEAR_FLAG
FROM (SELECT *
      ,MAX(date_x) OVER(PARTITION BY PERSON) AS MAX_DATE
      FROM TABLE) t1