我有下表:
CREATE TABLE trajectory(
user_id int,
session_id int,
timestamp timestamp with time zone,
lat double precision,
lon double precision
);
INSERT INTO trajectory(user_id, session_id, timestamp, lat, lon) VALUES
(1, 25304,'2008-10-23 02:53:04+01', 39.984702, 116.318417),
(1, 25304, '2008-10-23 02:53:10+01', 39.984683, 116.31845),
(1, 25304, '2008-10-23 02:53:15+01', 39.984686, 116.318417),
(1, 25304, '2008-10-23 02:53:20+01', 39.984688, 116.318385),
(1, 20959,'2008-10-24 02:09:59+01', 40.008304, 116.319876),
(1, 20959,'2008-10-24 02:10:04+01', 40.008413, 116.319962),
(1, 20959,'2008-10-24 02:10:14+01', 40.007171, 116.319458),
(2, 55305, '2008-10-23 05:53:05+01', 39.984094, 116.319236),
(2, 55305, '2008-10-23 05:53:11+01', 39.984198, 116.319322),
(2, 55305, '2008-10-23 05:53:21+01', 39.984224, 116.319402),
(2, 34104, '2008-10-23 23:41:04+01', 40.013867, 116.306473),
(2, 34104, '2008-10-23 23:41:16+01', 40.013907, 116.306488);
Question:个
我想在这个表中添加一个基于user_id
和session_id
列的trip_id
列,这样当用户的会话id更改时,我知道用户正在进行新的旅行,所以我将该id添加到新的trip
列中.
所需输出:
user_id |session_id |timestamp | lat | lon | trip_id
--------|------------|-----------------------|--------------|-----------|-----------
1 | 25304 |2008-10-23 02:53:04+01 | 39.984702 |116.318417 | 1
1 | 25304 |2008-10-23 02:53:10+01 | 39.984683 |116.31845 | 1
1 | 25304 |2008-10-23 02:53:15+01 | 39.984686 |116.318417 | 1
1 | 25304 |2008-10-23 02:53:20+01 | 39.984688 |116.318385 | 1
1 | 20959 |2008-10-24 02:09:59+01 |40.008304 |116.319876 | 2
1 | 20959 |2008-10-24 02:10:04+01 |40.008413 |116.319962 | 2
1 | 20959 |2008-10-24 02:10:14+01 |40.007171 |116.319458 | 2
2 | 55305 |2008-10-23 05:53:05+01 |39.984094 |116.319236 | 1
2 | 55305 |2008-10-23 05:53:11+01 |39.984198 |116.319322 | 1
2 | 55305 |2008-10-23 05:53:21+01 |39.984224 |116.319402 | 1
2 | 34104 |2008-10-23 23:41:04+01 |40.013867 |116.306473 | 2
2 | 34104 |2008-10-23 23:41:16+01 |40.013907 |116.306488 | 2
How can I do this?
EDIT个
感谢您的这些精彩回答,但收到的所有回答都是检索表值,并不修改表.此外,我添加了timestamp
栏,我最初忽略了这一点,认为这会简化我的问题.