SQLite:Query 针对特定的时间跟踪场景
SQLite:Query for a specific time tracking scenario
我有一个特定的场景来跟踪库存项目的进出时间。
我有一个 Inventory_track table 格式如下
Inv_id in_time out_time
1) I_1111 2015-11-29 21:05:00. 2015-12-01 03:00:00
2) I_1111 2015-12-01 05:00:00. 2015-12-01 09:00:00
3) I_1111 2015-12-01 15:00:00. 2015-12-01 17:00:00
4) I_1111 2015-12-01 21:00:00. NULL
- 每当将库存放入冰箱时,我都会插入一条带有 in_time
的新记录
- 每当取出库存时,我都会更新 out_time(不是插入,只是更新)
在任何给定的时间点,我想找到 库存在 冻结位置之外花费的时间。基本上我想做的是:
(record_2's in_time- record_1's out_time) + ( record_3's in_time- record_2's out_time)
对于给定的广告资源依此类推。
有人可以帮我在 sqlite 中为此进行查询吗?对于上述这种情况,我该如何着手使用自联接。
您可以采取不同的方法。找出最大和最小之间的差异 in_time 并减去该物品在冰箱中停留的时间间隔的总和。
WITH inventory_time_in_freezer AS (
SELECT i1.inv_id, SUM(i1.out_time - i1.in_time) as time_in_freezer
FROM inventory_tack i1
WHERE out_time IS NOT NULL
GROUP BY i1.inv_id
)
SELECT i2.inv_id, MAX(i2.in_time) - MIN(i2.in_time) - iif.time_in_freezer
FROM inventory_tack i2
JOIN inventory_time_in_freezer iif ON iif.inv_id = i2.inv_id
GROUP BY i2.inv_id, iif.time_in_freezer
P.S。上面的查询没有经过测试,只是为了说明这个想法。
我有一个特定的场景来跟踪库存项目的进出时间。
我有一个 Inventory_track table 格式如下
Inv_id in_time out_time
1) I_1111 2015-11-29 21:05:00. 2015-12-01 03:00:00
2) I_1111 2015-12-01 05:00:00. 2015-12-01 09:00:00
3) I_1111 2015-12-01 15:00:00. 2015-12-01 17:00:00
4) I_1111 2015-12-01 21:00:00. NULL
- 每当将库存放入冰箱时,我都会插入一条带有 in_time 的新记录
- 每当取出库存时,我都会更新 out_time(不是插入,只是更新)
在任何给定的时间点,我想找到 库存在 冻结位置之外花费的时间。基本上我想做的是:
(record_2's in_time- record_1's out_time) + ( record_3's in_time- record_2's out_time)
对于给定的广告资源依此类推。 有人可以帮我在 sqlite 中为此进行查询吗?对于上述这种情况,我该如何着手使用自联接。
您可以采取不同的方法。找出最大和最小之间的差异 in_time 并减去该物品在冰箱中停留的时间间隔的总和。
WITH inventory_time_in_freezer AS (
SELECT i1.inv_id, SUM(i1.out_time - i1.in_time) as time_in_freezer
FROM inventory_tack i1
WHERE out_time IS NOT NULL
GROUP BY i1.inv_id
)
SELECT i2.inv_id, MAX(i2.in_time) - MIN(i2.in_time) - iif.time_in_freezer
FROM inventory_tack i2
JOIN inventory_time_in_freezer iif ON iif.inv_id = i2.inv_id
GROUP BY i2.inv_id, iif.time_in_freezer
P.S。上面的查询没有经过测试,只是为了说明这个想法。