You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将计算得到的ride_length匹配ride_id后添加至SQLite现有表?

解决方案

1. 先给原表新增ride_length字段

你的all_divvy_tripdata表目前没有这个字段,第一步需要先添加列:

ALTER TABLE all_divvy_tripdata
ADD COLUMN ride_length INTEGER;

(这里用INTEGER是因为你用round()得到的是整数,若需要保留小数可以换成NUMERIC类型)

2. 用UPDATE语句匹配ride_id更新字段

INSERT INTO是用来新增行的,你需要的是修改已有行的字段值,所以要用UPDATE结合子查询或JOIN来完成匹配更新:

子查询写法

UPDATE all_divvy_tripdata t1
SET ride_length = (
    SELECT round((julianday(ended_at) - julianday(started_at)) * 1440)
    FROM all_divvy_tripdata t2
    WHERE t2.ride_id = t1.ride_id
);

JOIN写法(更高效)

如果你的SQL环境支持JOIN式UPDATE(比如SQLite、MySQL),可以用这种方式:

UPDATE all_divvy_tripdata t1
JOIN (
    SELECT
        ride_id,
        round((julianday(ended_at) - julianday(started_at)) * 1440) as ride_length
    FROM all_divvy_tripdata
) t2 ON t1.ride_id = t2.ride_id
SET t1.ride_length = t2.ride_length;

注意事项

确保ride_id是表的主键或唯一键,这样每个ride_id只会匹配到唯一的计算结果,避免更新出错。

内容的提问来源于stack exchange,提问作者JINGHAO CHEN

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 20:50:26