gpt4 book ai didi

sql-server - 如何在 SQL 查询中获取平均日期

转载 作者:行者123 更新时间:2023-12-02 07:38:11 24 4
gpt4 key购买 nike

我正在尝试在 sql 中获取平均日期,但我不确定如何执行此操作。我有以下字段:

ID   Date1             Date2                   Date3
1 05/04/2012 08/09/2012 07/02/2012

我想添加另一列显示 ID 号 1 的平均日期。我只完成了平均数,但从未完成平均日期。谢谢

最佳答案

您可以使用类似这样的方法,将日期转换为 float,然后取平均值:

select t.id, t.date1, t.date2, t.date3, src.AvgDate
from yourtable t
inner join
(
select id, cast(avg(date) as datetime) AvgDate
from
(
select id, cast(cast(date1 as datetime) as float) date
from yourtable
union all
select id, cast(cast(date2 as datetime) as float) date
from yourtable
union all
select id, cast(cast(date3 as datetime) as float) date
from yourtable
) x
group by id
) src
on t.id = src.id;

参见 SQL Fiddle with Demo

由于您的日期值跨越多个列,我执行了 unpivotunion all 以首先获取单个列中的值,然后取该值的平均值。

这是另一个使用 UNPIVOT 函数的例子:

select t.id, t.date1, t.date2, t.date3, src.AvgDate
from yourtable t
inner join
(
select id, cast(avg(date) as datetime) AvgDate
from
(
select id, cast(cast(date as datetime) as float) date
from yourtable
unpivot
(
date
for col in (date1, date2, date3)
) unpiv
) x
group by id
) src
on t.id = src.id;

参见 SQL Fiddle with Demo

关于sql-server - 如何在 SQL 查询中获取平均日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14043082/

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