算产量

数据库中,每个产品有时间,数量,机台字段,需要按时间计算每天的产量

机台1  2025-01-03 03:23:23  1

机台1  2025-01-03 03:26:23  1

机台1  2025-01-03 03:29:23  1

机台2  2025-01-03 03:23:23  1

机台2  2025-01-03 03:26:23  1

机台2  2025-01-03 03:29:23  1

机台1  2025-01-03 08:23:23  1

机台1  2025-01-03 08:26:23  1

机台1  2025-01-03 08:29:23  1

机台2  2025-01-03 08:23:23  1

机台2  2025-01-03 08:26:23  1

机台2  2025-01-03 08:29:23  1

机台1  2025-01-04 03:23:23  1

机台1  2025-01-04 03:26:23  1

机台1  2025-01-04 03:29:23  1

机台2  2025-01-04 03:23:23  1

机台2  2025-01-04 03:26:23  1

机台2  2025-01-04 03:29:23  1

机台1  2025-01-04 08:23:23  1

机台1  2025-01-04 08:26:23  1

机台1  2025-01-04 08:29:23  1

机台2  2025-01-04 08:23:23  1

机台2  2025-01-04 08:26:23  1

机台2  2025-01-04 08:29:23  1

按照8点分割,统计明天机台产量,不是自然日,sql怎么写,Oracle数据库

SQL nihaoa 发布于 2025-1-10 13:10
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
shirokoLv6资深互助
发布于2025-1-10 13:43

image.png

select 机台名,to_char(工作时间, 'yyyy-mm-dd' ) 工作日期,SUM(数量) 产量 from

(select 机台名,时间,数量,时间-8/24 工作时间 from 表) A

group by 机台名,to_char(工作时间, 'yyyy-mm-dd' )

最佳回答
0
用户k6280494Lv6专家互助
发布于2025-1-10 13:13

WITH data AS (    SELECT        机台,        数量,        TO_DATE(TO_CHAR(时间, 'YYYY-MM-DD HH24:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS 日期时间,        CASE            WHEN TO_CHAR(时间, 'HH24:MI:SS') < '08:00:00' THEN TO_DATE(TO_CHAR(时间, 'YYYY-MM-DD') || ' 08:00:00', 'YYYY-MM-DD HH24:MI:SS') - INTERVAL '1' DAY            ELSE TO_DATE(TO_CHAR(时间, 'YYYY-MM-DD') || ' 08:00:00', 'YYYY-MM-DD HH24:MI:SS')        END AS 分割日期    FROM your_table_name ) SELECT    机台,    TRUNC(分割日期) AS 日期,    SUM(数量) AS 产量 FROM data GROUP BY    机台,    TRUNC(分割日期) ORDER BY    机台,    日期;

  • 3关注人数
  • 19浏览人数
  • 最后回答于:2025-1-10 13:43
    请选择关闭问题的原因
    确定 取消
    返回顶部