我在mysql中有一个表,其中保存了数千个电话。一些电话接线员用多个记录发送电话。电话是随机的,必须首先按主叫方、被叫方和日期排序。
下面是一个例子
Id|Caller|Called|Date|Length|CallerImei|CallerImsi|CalledImei|CalledImsi|CallerCGIStart|CallerCGIEnd|CalledCGIStart|CalledCGIEND
"9"|"+39123"|"+39321"|"2018-08-03 03:10:18"|"351"|"8629"|"222"|""|""|"0117"|""|""|""
"16"|"+39222"|"+39111"|"2018-08-03 03:17:04"|"106"|"8629"|"222"|""|""|"4590"|""|""|""
"18"|"+39222"|"+39111"|"2018-08-03 03:17:04"|"106"|"" |""|"8629"|"222"|""|""|"4590"|""
"3"|"+39333"|"+39355"|"2018-08-03 03:06:23"|"146"|"8630"|"222"|""|""|"0117"|""|""|""
在ID为16和18的行中,调用被分为两个记录。第16行有一些信息,第18行有其他信息。我们可以识别呼叫,因为它有相同的日期,相同的持续时间,相同的呼叫者和被叫者。另外,有些电话可能有两条以上的线路或持续时间可能略低,但如果前一个电话持续时间比后一个电话长。。。肯定是同一个电话。
我想这样合并。
Id |Caller|Called|Date|Length|CallerImei|CallerImsi|CalledImei|CalledImsi|CallerCGIStart|CallerCGIEnd|CalledCGIStart|CalledCGIEND|ListIDMerged
"1"|"+39123"|"+39321"|"2018-08-03 03:10:18"|"351"|"8629"|"222"|""|""|"0117"|""|""|""|"9"
"2"|"+39222"|"+39111"|"2018-08-03 03:17:04"|"106"|"8629"|"222"|"8629"|"222"|"4590"|""|"4590"|""|"16,18"
"3"|"+39333"|"+39355"|"2018-08-03 03:06:23"|"146"|"8630"|"222"|""|""|"0117"|""|""|""|"3"
然后创建一个包含合并结果的表和一个列,该列考虑了可能控件的合并行
谢谢大家
暂无答案!
目前还没有任何答案,快来回答吧!