You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在含日期列的表上定义视图,新增IsNew列标识元组首次出现

创建带IsNew标识的视图方案

以下两种SQL写法都能实现你需要的视图,因为你不关注性能,任选其一测试业务逻辑即可:

方法一:使用窗口函数(简洁直观)

CREATE VIEW YourViewName AS
SELECT
    EntryDate,
    Dim1,
    Dim2,
    Dim3,
    CASE
        WHEN ROW_NUMBER() OVER (PARTITION BY Dim1, Dim2, Dim3 ORDER BY EntryDate) = 1 THEN 'true'
        ELSE 'false'
    END AS IsNew
FROM YourTableName;

逻辑说明:按Dim1、Dim2、Dim3的组合分组,每组内按EntryDate升序排序,每组中最早出现的记录(行号为1)标记IsNew为true,后续出现的标记为false。

方法二:使用NOT EXISTS子查询

CREATE VIEW YourViewName AS
SELECT
    t1.EntryDate,
    t1.Dim1,
    t1.Dim2,
    t1.Dim3,
    CASE
        WHEN NOT EXISTS (
            SELECT 1
            FROM YourTableName t2
            WHERE t2.Dim1 = t1.Dim1
              AND t2.Dim2 = t1.Dim2
              AND t2.Dim3 = t1.Dim3
              AND t2.EntryDate < t1.EntryDate
        ) THEN 'true'
        ELSE 'false'
    END AS IsNew
FROM YourTableName t1;

逻辑说明:对每条记录,检查是否存在相同维度组合且EntryDate更早的记录,若不存在则标记IsNew为true,否则为false。

内容的提问来源于stack exchange,提问作者Chris Harrington

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:12:04