各位大神,我遇到一个问题,我现在有这么一个表
USER_ID         TIME              IN_ID         OUT_ID    
--------------------------------------------------------------------------------
00001            2017/1/1 8:00             01                  05
00001            2017/1/1 20:00           05                  01
00025            2017/1/1 14:00             07                  91
00006            2017/1/1  9:00             02                  45
..............
.............
----------------------------------------------------------------------------------------
USER_ID代表用户编号,TIME代表乘车时间,IN_ID代表入站的站台编码,OUT_ID代表出站的站台编码.一共有93个站点,有93个编码。回路:一个乘客一天内由A站进,B站出,再从B站进,A站出。A-B-A就形成一个回路。只要有一个乘客是这个行程,回路就产生。比如第1条和第二条数据。就形成一个01--05---01的回路现在我需要查询出一个表,统计一周数据从2017/1/1----2017/1/7
第一列是时间,比如2017/1/1
第二列是今日所有回路的种类数目。比如A-B-A和B-A-B是两种回路。
第三列是今日所有回路的总数,就是今日乘客出行轨迹为回路的人次。如果不能一次查询出来,可以弄成两个表再合并。谢谢各位大神

解决方案 »

  1.   

    这种复杂的查询只靠sql没这么容易搞出来的
    就算写出来可能也很难记忆,很难理解,很难改错
    应该考虑写个存储过程什么的
    或者用外部高级语言来处理,比如用python写个脚本什么的
      

  2.   

    1、判断回路,我第一时间想到用lag
    2、合并回轮数据
    3、分组统计
    没时间,等晚上写写看
      

  3.   

    可以用分析函数统计,或者笨点的方法就是查2次表,1次是A进站和B出站,1次是B进站A出站,然后结果合并