具有不同时间戳的日期总和并选择最小日期?
Sum dates with different timestamps and picking the min date?
这里是初学者。我希望每个交货日期只有一行,但保持时间和分钟很重要。我在 Oracle 中有以下 table(左):
如您所见,有几天某个 SKU(例如 SKU A)在同一天交付了两次。右边的table就是想要的结果。本质上,我想汇总 28 日到达的数量,并在 Supplier_delivery 列中我想要最早的交货时间戳。
我需要保留时间和分钟,否则我知道我可以通过这样写来实现:
SELECT SKU, TRUNC(TO_DATE(SUPPLIER_DELIVERY), 'DDD'), SUM(QTY)
FROM TABLE
GROUP BY SKU, TRUNC(TO_DATE(SUPPLIER_DELIVERY), 'DDD')
有什么想法吗?
您可以使用 MIN()
:
SELECT SKU, MIN(SUPPLIER_DELIVERY), SUM(QTY)
FROM TABLE
GROUP BY SKU, TRUNC(SUPPLIER_DELIVERY);
这假定 SUPPLIER_DELIVERY
是一个日期,不需要转换为一个。但它也适用于 GROUP BY
中的 TO_DATE()
。
这里是初学者。我希望每个交货日期只有一行,但保持时间和分钟很重要。我在 Oracle 中有以下 table(左):
如您所见,有几天某个 SKU(例如 SKU A)在同一天交付了两次。右边的table就是想要的结果。本质上,我想汇总 28 日到达的数量,并在 Supplier_delivery 列中我想要最早的交货时间戳。
我需要保留时间和分钟,否则我知道我可以通过这样写来实现:
SELECT SKU, TRUNC(TO_DATE(SUPPLIER_DELIVERY), 'DDD'), SUM(QTY)
FROM TABLE
GROUP BY SKU, TRUNC(TO_DATE(SUPPLIER_DELIVERY), 'DDD')
有什么想法吗?
您可以使用 MIN()
:
SELECT SKU, MIN(SUPPLIER_DELIVERY), SUM(QTY)
FROM TABLE
GROUP BY SKU, TRUNC(SUPPLIER_DELIVERY);
这假定 SUPPLIER_DELIVERY
是一个日期,不需要转换为一个。但它也适用于 GROUP BY
中的 TO_DATE()
。