获取当前和上一次记录 获取当前和上一次记录
表T记录旅客一年乘坐交通工具的情况,每天都会更新数据如下:
旅客姓名 日期 当前交通工具
张三 2014-01-02 火车
张三 2014-03-25 汽车
李四 2014-02-06 飞机
李四 2014-03-25 火车
张三 2014-04-05 飞机
李四 2014-03-29 轮船
现在想获取某人每次乘坐交通工具的信息统计,具体有4列:
旅客姓名 日期 当前交通工具 上次交通工具
张三 2014-01-02 火车
张三 2014-03-25 汽车 火车
李四 2014-02-06 飞机
李四 2014-03-25 火车 飞机
张三 2014-04-05 飞机 汽车
李四 2014-03-29 轮船 火车
现在每天会定时抽取前一天的数据,会先放入一个临时表,然后处理这些信息,包括上面的需求。整个处理完毕会插入到正式的统计表里。
针对上面的需求,现在的做法是对每天新增加的记录里旅客,循环去看之前的每一天的乘坐情况,(有个起点日期)如果发现那一天该旅客出行了,就会更新 上次交通工具,该旅客搜索结束。也用过lag分析函数.现在的测试效果很慢,数据量太大了,上亿的数据,求优化算法。我觉得如果能“直接”取得每个旅客上次出行记录,速度就上来了,而不是去比较之前的每一天。
请注意:
不是每天旅客都出行的
对于一名旅客每次出行,都会有当前交通工具, 上次交通工具的统计
当前交通工具获取很简单,直接插入即可,难点在于上次交通工具的获取,日期是不定的
业务需求是查询一段时间内,交通工具的转化情况,如:2013.1.1 到2013.5.30 汽车 到 飞机 的转化比