根据计算更新列

数据可以美丽

我的桌子看起来像这样:

    id     entry_date          
    1      21/12/2020 15:00          
    1      21/12/2020 17:00          
    1      21/12/2020 19:00          
    2      24/12/2020 00:00         
    2      24/12/2020 12:00

我有一个ID连接到datestamps的列表我可以设法计算出它们的最新条目与第一个条目之间的差异,如下所示:

SELECT id, TIMESTAMPDIFF(hour, MIN(entry_date), MAX(entry_date))
FROM mytable
GROUP BY id;

但是,我不确定如何更新表以反映这些计算。我想要的是以下内容:

id     entry_date          time_difference
1      21/12/2020 15:00          4
1      21/12/2020 17:00          4
1      21/12/2020 19:00          4
2      24/12/2020 00:00          12
2      24/12/2020 12:00          12
专线小巴

在MySQL中,您可以自我加入:

update mytable t
inner join (
    select id, 
        timestampdiff(hour, min(entry_date), max(entry_date)) as time_difference
    from mytable
    group by id
) t1 on t1.id = t.id
set t.time_difference = t1.time_difference

我不一定建议存储此派生的信息,因为很难使其保持最新状态。相反,您可以创建一个视图。如果您正在运行MySQL 8.0:

create view myview as
select t.*,
    timestampdiff(
        hour, 
        min(entry_date) over(partition by id), 
        max(entry_date) over(partition by id)
    ) as timedifference
from mytable t

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

SQL - 根据值计算记录并更新多列

来自分类Dev

根据列计算更新值

来自分类Dev

根据另一列的计算创建MYSQL触发器以更新列

来自分类Dev

根据另一列的计算创建MYSQL触发器以更新列

来自分类Dev

根据 DateTimeIndex 更新列

来自分类Dev

根据前几行计算列

来自分类Dev

根据Oracle中的百分比计算更新多列

来自分类Dev

根据单独表的状态更新计算的[字段]

来自分类Dev

根据SELECT计算值更新表

来自分类Dev

mysql根据数字更新列

来自分类Dev

根据ID熊猫更新列

来自分类Dev

如何根据条件更新列

来自分类Dev

用计算值更新列

来自分类Dev

根据日期动态计算列值

来自分类Dev

根据PostgreSQL中的值计算不同的列

来自分类Dev

根据条件pyspark计算不同的列值

来自分类Dev

如何根据列值计算矩阵均值

来自分类Dev

根据数学计算创建新列

来自分类Dev

Python根据日期列计算新列

来自分类Dev

条件矩阵:根据列对计算值

来自分类Dev

根据计算值对列进行排序

来自分类Dev

根据列中值重复的天数计算

来自分类Dev

根据其他列条件更新列

来自分类Dev

添加并显示根据实体计算并自动更新的元素

来自分类Dev

根据php中的复选框更新计算

来自分类Dev

根据pandas 0.16中的条件更新列

来自分类Dev

根据列值动态更新SQLite行

来自分类Dev

根据列值更新SQL表

来自分类Dev

根据条件和分组依据更新列