gpt4 book ai didi

mysql - SQL : Geeting Order's status timestamp in a nested query

转载 作者:行者123 更新时间:2023-11-29 07:17:21 25 4
gpt4 key购买 nike

我正在处理订单表,其中包含有关已分配订单的所有详细信息。示例数据库示例是

Order ID   Order Status     Action Date
23424 ALC 1571467792094280
23424 PIK 1571467792999990
23424 PAK 1571469792999990
23424 SHP 1579967792999990
33755 ALC 1581467792238640
33755 PIK 1581467792238640
33755 PAK 1581467792238640
33755 SHP 1581467792238640

在表中,我有订单 ID、状态、action_date(当根据更新时间戳更新订单状态时更新操作日期,action_date 是 unix 时间)

我正在尝试编写一个可以为我提供订单 ID、ALC_AT、PIK_AT、PAK_AT、SHP_AT 的查询基本上所有针对一行内订单 ID 的时间戳更新,我知道它可以通过嵌套查询来完成,但是,我不知道该怎么做。

如有任何帮助,我们将不胜感激。

编辑(按要求提供示例结果):

Order ID   Order Status     ALC_AT             PIK_AT            PAK_AT              SHP_AT
23424 SHP 1571467792094280 1571467792999990 1571469792999990 1579967792999990

最佳答案

我不确定它在 mysql 中是如何完成的。但下面描述了它将如何在 Oracle 中完成。您可以在 mysql 中搜索更多的 PIVOT 来帮助您。

select * 
from (select order_id,
status,
action_date
from order)
pivot (max(status)
for app_id in ( 'ALC' as 'ALC_AT', 'PIK' as 'PIK_AT', 'PAK' as 'PAK_AT', 'SHP' as 'SHP_AT'))

希望对您有所帮助。

为 mysql 编辑:

select * 
from (select "order.order_number",
"shipment.status",
from_unixtime("action_date"/1000000) as "action_date"
from order_table
where "order.order_number" = '2019-10-19-N2-6411')
pivot (max("action_date")
for "shipment_status" in ( 'ALC' AS 'ALC_AT', 'PIK' AS 'PIK_AT', 'PAK'
AS 'PAK_AT', 'SHP' AS 'SHP_AT'))

关于mysql - SQL : Geeting Order's status timestamp in a nested query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58480825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com