gpt4 book ai didi

mysql - 求助!如何创建一个新列来显示两个不同时期之间的持续时间

转载 作者:行者123 更新时间:2023-11-29 05:07:04 27 4
gpt4 key购买 nike

在新数据集中,我创建了两个新列,Start_time 和 End_time。我还想创建一个列来显示这两个时间之间的差异。这是我的代码:

SELECT   b.company, 
b.NAME,
Max(
CASE
WHEN description = 'Green' THEN final_value
END) AS 'Start_Time',
Max(
CASE
WHEN description = 'Red' THEN final_value
END) AS 'End_Time',
cast(datediff(n,
CASE('End_Time' as datetime),
CASE('Start_Time' AS datetime)) AS float) / 60 AS time_duration
FROM mydata a
JOIN ref_val b
ON a.ref_res = b.ref_res
WHERE b.company = 'abc'
GROUP BY b.company ,
b.NAME

当我运行这段代码时,我收到一条错误消息,指出无法绑定(bind) End_Time。有什么建议么?谢谢!

最佳答案

您可以使用子查询来使用您创建的别名,也不能使用 float 类型在 mysql 中转换值。

SELECT *, CAST(DATEDIFF(n, CAST(End_Time AS datetime), CAST(Start_Time AS datetime)) AS DECIMAL(10,2)) / 60 AS Time_Duration
FROM (SELECT B.COMPANY
,B.NAME
,MAX(case when DESCRIPTION = 'Green' then Final_Value end) as Start_Time
,MAX(case when DESCRIPTION = 'Red' then Final_Value end) as End_Time
FROM mydata a
JOIN ref_val B
ON A.ref_res = B.ref_res
WHERE B.COMPANY = 'abc'
GROUP BY B.COMPANY
,B.NAME
) C

关于mysql - 求助!如何创建一个新列来显示两个不同时期之间的持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45948054/

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