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

Redshift查询优化需求:新增Yes/No列判定多进程符合条件情况

Redshift查询实现:新增Yes/No判断列

可以通过子查询+聚合统计+条件判断的方式实现需求,具体步骤和SQL如下:

实现思路

  • 先定位数据集里的最新日期
  • 针对最新日期的数据,按name分组,统计每个name下满足value IN ('L1','L2')的不同process数量
  • 根据统计数量是否≥2,输出Yes或No

具体SQL代码

写法一:子查询获取最新日期

SELECT
    name,
    CASE
        WHEN COUNT(DISTINCT process) >= 2 THEN 'Yes'
        ELSE 'No'
    END AS has_multiple_qualified_process
FROM
    your_table_name
WHERE
    date = (SELECT MAX(date) FROM your_table_name)
    AND value IN ('L1', 'L2')
GROUP BY
    name

写法二:窗口函数标记最新日期(适合保留更多字段的场景)

如果需要保留原表的process、value等字段,可以用窗口函数先标记最新日期数据,再统计判断:

WITH latest_data AS (
    SELECT
        *,
        MAX(date) OVER () AS max_date
    FROM
        your_table_name
),
name_process_count AS (
    SELECT
        name,
        COUNT(DISTINCT process) OVER (PARTITION BY name) AS qualified_process_count
    FROM
        latest_data
    WHERE
        date = max_date
        AND value IN ('L1', 'L2')
)
SELECT
    DISTINCT
    name,
    CASE
        WHEN qualified_process_count >= 2 THEN 'Yes'
        ELSE 'No'
    END AS has_multiple_qualified_process
FROM
    name_process_count

关键说明

  • 使用COUNT(DISTINCT process)是为了避免同一个process对应多条L1/L2记录时重复计数,确保统计的是不同process的数量
  • 如果需要将判断列与原表全量数据关联,可将上述统计结果作为子查询,通过name字段关联回原表

内容的提问来源于stack exchange,提问作者Fe.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:29:57