如何使用Oracle表中的订单项数据创建时间序列汇总?

时间:2019-06-03 15:46:52

标签: sql oracle

我最近搬到了一个新职位,负责处理记录在Oracle表上的运输数据。这些表中的一个包括用于载波速率的数据,并且以“开始/至今”格式记录。一个示例是,运营商1在日期A和B之间具有特定的费率。但是,在任何给定的时间范围之间,可能有一个运营商或多个运营商。如果有多个运营商,则需要提供表格中另一个字段的加权平均值。

随着承运人的到来或被删除,起始/结束日期将更新为新值。我被问到的业务问题是“如果货件在日期A和日期B之间,则费率应该是多少?”。

这是我到目前为止所拥有的:

SELECT
    origin_id,
    destination_id,
    equip_type,
    MIN(from_date) AS from_date,
    MAX(TO_DATE) AS TO_DATE,
    CEIL(AVG(award_pctof_lane)) AS awd_pct,
    CEIL(AVG(weekly_lane_volume)) AS awd_vol,
    TO_CHAR(SUM(award_pctof_lane * linehaul_rate_per_mile) / SUM(award_pctof_lane), '$9,999.00') AS awd_weight_rpm,
    ( trunc(SYSDATE) - MIN(trunc(from_date)) ) AS days_active
FROM
    service_lane_table
WHERE
    award_pctof_lane > 0
    AND linehaul_rate_per_mile > 0
    AND origin_id = 'Location1'
    AND destination_id = 'Destination1'
    AND EQUIP_TYPE = '53FT'
GROUP BY
    origin_id,
    destination_id,
    equip_type
ORDER BY
    origin_id,
    destination_id,
    equip_type

query results

但是,我认为这些数据不准确,因为它会将所有记录压缩为一条记录,所以查看原始表。 raw table

如果我要手动执行此操作,则将获得以下结果,该结果将建立清晰的时间轴/时间轴。 desired output

任何人都能提供的帮助/建议将不胜感激。

0 个答案:

没有答案