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

如何为动态小时表添加多机型列并生成对应组合数据?

实现方案

完全可以实现这个需求,只需将机型列表与原有小时时间查询做笛卡尔积关联,再拼接出符合格式的machine字段即可。

最终查询语句

WITH hour_list AS (
    SELECT TO_CHAR(
             TRUNC(SYSDATE) + INTERVAL '1' HOUR * (LEVEL - 1),
             'YYYY-MM-DD HH24'
           ) AS date_hour
    FROM   DUAL
    CONNECT BY
           TRUNC(SYSDATE) + INTERVAL '1' HOUR * (LEVEL - 1) < TRUNC(SYSDATE) + INTERVAL '1' DAY
),
machine_list AS (
    SELECT 'MAQ1' AS machine_code FROM DUAL
    UNION ALL
    SELECT 'MAQ2' AS machine_code FROM DUAL
    UNION ALL
    SELECT 'MAQ3' AS machine_code FROM DUAL
)
SELECT 
    h.date_hour,
    m.machine_code || '_' || h.date_hour AS machine
FROM hour_list h
CROSS JOIN machine_list m
ORDER BY m.machine_code, h.date_hour;

逻辑说明

  1. hour_list CTE:保留你原有的逻辑,生成当日00到23点的所有整点时段。
  2. machine_list CTE:通过UNION ALL生成需要的三个机型代码。
  3. 交叉连接(CROSS JOIN):让每个机型与每个小时时段一一配对,生成3×24=72行数据。
  4. 字段拼接:用||运算符将机型代码与date_hour拼接成你需要的machine列格式。

部分预期结果示例

date_hourmachine
2023-08-09 00MAQ1_2023-08-09 00
2023-08-09 01MAQ1_2023-08-09 01
......
2023-08-09 23MAQ1_2023-08-09 23
2023-08-09 00MAQ2_2023-08-09 00
......

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 20:12:37