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

SQL查询结果优化:将多行列合并为单行的实现方案

SQL优化方案

直接用聚合函数MAX()配合CASE表达式,同时调整分组逻辑,就能把同一loadNumber的所有有效日期合并到单行:

SELECT 
    loadNumber, 
    MAX(CASE WHEN E.Clave = 'LOD' THEN FechaEvento ELSE NULL END) AS 'Load Date USA', 
    MAX(CASE WHEN E.Clave = 'DAA' THEN FechaEvento ELSE NULL END) AS 'Colocacion AA',
    MAX(CASE WHEN E.CLAVE = 'RPD' THEN FechaEvento ELSE NULL END) AS 'Docs Listos',
    MAX(CASE WHEN E.Clave = 'IDT' THEN FechaEvento ELSE NULL END) AS 'Llegada MX',
    MAX(CASE WHEN E.Clave = 'ULD' THEN FechaEvento ELSE NULL END) AS 'Descarga MX'
FROM
    OrdenEvento OE
INNER JOIN 
    Evento E ON OE.idEvento = E.ID
WHERE 
    loadNumber = '60317'
GROUP BY 
    loadNumber

关键调整点:

  • 给每个CASE表达式套上MAX()聚合函数:每个Clave对应的日期只会在一行里有值,其他行都是NULL,MAX()会自动忽略NULL,提取出该字段的有效日期值。
  • 修改GROUP BY仅保留loadNumber:将同一loadNumber的所有行合并为一组,最终输出单行结果。

如果某个loadNumber对应同一个Clave有多个日期(比如重复事件),MAX()会取最新的日期;如果需要最早的日期,可以换成MIN(),根据实际业务需求调整即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 18:16:20