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

Databricks SQL分组问题:日期致多行,需合并为单行取最大日期

Databricks SQL分组问题解决方案

你的问题出在GROUP BY子句里包含了DATE_START和DATE_END——只要这两个日期字段的值不同,就会被分成独立分组,最终生成多行结果。要实现按PRIMARY_KEY合并为单行,并取最大日期作为主日期,需要修改分组逻辑,用聚合函数处理日期字段:

修正后的查询代码:

WITH Final AS
(
SELECT
    PRIMARY_KEY,
    DUMMYCOLUMN,
    MAX(DATE_START) AS DATE_START,
    MAX(DATE_END) AS DATE_END,
    ARRAY_JOIN(COLLECT_SET(Sales), ', ') AS TEST
FROM Contract
GROUP BY PRIMARY_KEY, DUMMYCOLUMN
)
SELECT * FROM FINAL

关键改动说明:

  • 移除GROUP BY中的DATE_START和DATE_END,仅保留需要唯一分组的PRIMARY_KEY(如果DUMMYCOLUMN在同一PRIMARY_KEY下值固定,需保留在GROUP BY中;若值不固定,可改用MAX(DUMMYCOLUMN)这类聚合函数处理)
  • 对DATE_START和DATE_END使用MAX()聚合函数,获取每组中的最大日期
  • 保留ARRAY_JOIN(COLLECT_SET(Sales), ', ')来合并同一分组下的Sales文本值

内容的提问来源于stack exchange,提问作者Łukasz Orzechowski

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 08:34:50