一道阿里面试sql题:得出在地铁内逗留时间最长的 人

MySql 码拜 9年前 (2016-02-10) 1393次浏览
多个地铁站内  多个出入的闸机    怎么样得出在地铁内逗留时间最长的   人
每个闸机  保留日志有  id   time  这里的id是每个人的id
如1001   20:00
该日志是按时间顺序存放的
问一下怎么样写sql语句?
解决方案

10

一天以内,同个id,即同个人进出一定是偶数次例如
1001   20:00  in
1001   20:05  out
先对用户id,time进行排序,得出一个排序
1 1001   20:00  in
2 1001   20:05  out
那么停留时间= 偶数次-上一个奇数次
f(time)=f(2n)-f(2n-1)+f(2n+2)-f(2n+1) 诸如此类。

10

只能提供思路:楼上说的对!但是 干完楼上的活 ,还要加上 每个地铁站的算出来的 在地铁逗留时间  相加 求和就是  在A地铁 35分钟+在B地铁40分钟 =70分钟;完了依次算出 那些人 就能求得 他们的哪个人时间最长

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明一道阿里面试sql题:得出在地铁内逗留时间最长的 人
喜欢 (0)
[1034331897@qq.com]
分享 (0)