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

SQL字符串透视聚合:英国银行假日表转列方案求助(Serverless环境)

解决方案

可以通过条件聚合实现需求,无需使用PIVOT或性能低下的自连接,完全适配SQL Serverless的环境限制:

SELECT
    [日期(Date)],
    MAX(CASE WHEN [地区(Region)] = 'Scotland(苏格兰)' THEN 1 ELSE 0 END) AS [Scotland(苏格兰)],
    MAX(CASE WHEN [地区(Region)] = 'England-and-Wales(英格兰和威尔士)' THEN 1 ELSE 0 END) AS [England-and-Wales(英格兰和威尔士)],
    MAX(CASE WHEN [地区(Region)] = 'Northern-Ireland(北爱尔兰)' THEN 1 ELSE 0 END) AS [Northern-Ireland(北爱尔兰)]
FROM
    OPENROWSET(
        BULK '你的Parquet文件存储路径',
        FORMAT = 'PARQUET'
    ) AS bank_holidays
GROUP BY
    [日期(Date)]
ORDER BY
    [日期(Date)];

关键逻辑说明

  • 条件聚合替代透视:用CASE语句针对每个地区标记是否存在记录(存在返回1,否则0),再通过MAX聚合函数保留该日期对应地区的有效标记——只要该日期在某地区有至少一条记录,最终结果就是1,否则为0。
  • 避免性能问题:直接通过GROUP BY [日期(Date)]获取所有唯一日期,无需额外自连接生成日期行,大幅提升查询效率。
  • 适配环境限制:仅使用OPENROWSET读取Parquet数据,未涉及函数、临时表或存储过程,完全符合SQL Serverless的操作约束。

注意:确保[地区(Region)]的匹配字符串与Parquet数据中的值完全一致,包括括号内的中文内容,避免判断逻辑失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 04:22:22