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

如何优化Redshift查询,将数据合并为单行并去除空值?

调整Amazon Redshift查询以合并结果为单行并去除空值

现有如下Amazon Redshift查询语句:

select 
     distinct id_butaca,
        max(CASE WHEN id_tipoorden = 1 THEN fechahoracompra ELSE NULL END) over (partition by id_butaca,id_tipoorden ) as max_fecha_compra,
        max(CASE WHEN id_tipoorden = 4 THEN fechahoracompra ELSE NULL END) over (partition by id_butaca,id_tipoorden ) as max_fecha_devo
from dw_fact_table 
where 
id_butaca = 175044501

该查询返回两行带空值的数据,现需修改查询,去除空值并将数据合并为单行,预期结果格式如下:

id_butaca,   max_fecha_compra,       max_fecha_devo
175044501   2023-01-09 12:11:04.0   2023-01-09 12:09:55

修改后的查询语句

select 
    id_butaca,
    max(CASE WHEN id_tipoorden = 1 THEN fechahoracompra ELSE NULL END) as max_fecha_compra,
    max(CASE WHEN id_tipoorden = 4 THEN fechahoracompra ELSE NULL END) as max_fecha_devo
from dw_fact_table 
where id_butaca = 175044501
group by id_butaca;

调整说明

  • 原查询使用窗口函数时,按id_butaca和id_tipoorden双字段分区,导致同id_butaca下不同id_tipoorden的数据生成两行结果,每行仅填充对应类型的日期字段,另一字段为空。
  • 修改后移除窗口函数,改用group by id_butaca将同id_butaca的所有数据聚合为一行,max()聚合函数会自动忽略空值,提取对应id_tipoorden下的最大日期值,最终得到无空值的单行结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 15:55:13