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

需求:创建遇Null重置的累计求和列及指定字段新表

解决方案

我们可以通过构造分组标识实现遇到Null值时重置累计求和的需求,再结合窗口函数计算分组内的累计值。以下是针对主流SQL数据库(MySQL 8.0+/PostgreSQL/SQL Server)的实现代码:

-- 创建包含sum列的新表
CREATE TABLE new_production_table AS
WITH grouped_data AS (
    SELECT 
        linekey,
        machinekey,
        starttime,
        endtime,
        date,
        productioncountwotearoff,
        -- 构造分组:每遇到productioncountwotearoff为Null,分组编号+1
        SUM(CASE WHEN productioncountwotearoff IS NULL THEN 1 ELSE 0 END) 
            OVER (ORDER BY date, starttime) AS group_id
    FROM your_original_table
)
SELECT 
    linekey,
    machinekey,
    starttime,
    endtime,
    date,
    -- 分组内累计求和,Null值对应sum按0计算(可按需调整为Null)
    SUM(CASE WHEN productioncountwotearoff IS NOT NULL THEN productioncountwotearoff ELSE 0 END)
        OVER (PARTITION BY group_id ORDER BY date, starttime) AS sum
FROM grouped_data
ORDER BY date, starttime;

关键逻辑说明:

  • 分组标识group_id:通过SUM(CASE...) OVER(ORDER BY...)计算,每当遇到productioncountwotearoff为Null时,分组编号递增,以此划分出独立累计的区间。
  • 累计求和sum:使用SUM(CASE...) OVER(PARTITION BY group_id ORDER BY...),在每个分组内按时间顺序累计非Null的productioncountwotearoff值;若需要Null对应的sum值保持为Null,可将CASE表达式中的0改为productioncountwotearoff。
  • 新表生成:通过CREATE TABLE...AS语句直接将结果存入新表new_production_table,可根据实际需求修改表名。

如果你的数据库不支持CTE(如MySQL 5.x),可改用子查询实现:

CREATE TABLE new_production_table AS
SELECT 
    linekey,
    machinekey,
    starttime,
    endtime,
    date,
    SUM(CASE WHEN productioncountwotearoff IS NOT NULL THEN productioncountwotearoff ELSE 0 END)
        OVER (PARTITION BY group_id ORDER BY date, starttime) AS sum
FROM (
    SELECT 
        linekey,
        machinekey,
        starttime,
        endtime,
        date,
        productioncountwotearoff,
        SUM(CASE WHEN productioncountwotearoff IS NULL THEN 1 ELSE 0 END) 
            OVER (ORDER BY date, starttime) AS group_id
    FROM your_original_table
) AS sub
ORDER BY date, starttime;

注意:请将代码中的your_original_table替换为实际原始表名;ORDER BY date, starttime需根据数据时间逻辑调整,确保累计顺序正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 16:22:36