免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1372 | 回复: 6
打印 上一主题 下一主题

如何用SHELL核对帐单?求助! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-20 09:24 |只看该作者 |倒序浏览
我手头有近800万条帐单要对内容如下:

号码            开始时间       通话时长

58028325|20050821000002|6
61321178|20050821000007|5
51213686|20050821000009|5
13913184051|20050821000009|6
56785141|20050821000009|6
13906220357|20050821000010|37
51855250|20050821000012|5
55336087|20050821000014|15
13160106666|20050821000015|6
13962679257|20050821000016|5
53108985|20050821000017|7
62061701|20050821000017|4
13182651301|20050821000019|5
51266866|20050821000020|4
13862665089|20050821000021|7
13616206224|20050821000022|6


这样的数据有两份,一份是我们自己的一份,是电信的。

对帐的要求就是相同的号码“开始时间”相差在2分钟内就算相同。
需要把两份帐单中相同的和不同的分别挑出来。

所以求助!因为偶只会对其中的一列数据,合在一起就搞不定了!

^_^

论坛徽章:
0
2 [报告]
发表于 2005-12-20 10:17 |只看该作者
这个问题,劝你最好编程做,shell来处理 会很慢的800万条数据呢!
比较起来废了.......
提供一个我们对帐的思路,对电信的数据分析出来导入数据库,(按时间,手机号码排序)  你自己的做成文件,读入内存,用折半查找比对, 一般算法正确20万数据需要10秒左右!

论坛徽章:
0
3 [报告]
发表于 2005-12-20 10:27 |只看该作者
我导入到ORACLE后跑起来也狂慢,因为我的测试机是SUN BLADE的,只有512M内存,CPU也只有900M。
简单的一个SQL
select count(*) from mdc.aa a where exists (select caller from mdc.aa1 b where b.caller=a.caller);
跑了半个小时也没有跑出来!

论坛徽章:
0
4 [报告]
发表于 2005-12-20 10:34 |只看该作者
像这样的数据分析你指望一个工具 shell 或者mysql 之类的来独自完成是不现实的...... 需要把他们结合起来..... 运用各自的长出,优化算法...完成

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
5 [报告]
发表于 2005-12-20 14:08 |只看该作者
这个不好做。号码应该有重复的吧

论坛徽章:
0
6 [报告]
发表于 2005-12-20 14:25 |只看该作者
对帐的要求就是相同的号码“开始时间”相差在2分钟内就算相同。
需要把两份帐单中相同的和不同的分别挑出来

楼主能把你的意思表达清楚一下吗?
我有点糊涂
相同的号码“开始时间”相差在2分钟内就算相同
什么 意思?
把两份帐单中相同的和不同的分别挑出来
两份不一样?
对吗?

论坛徽章:
0
7 [报告]
发表于 2005-12-20 15:41 |只看该作者
楼主的意思是,他自己有一分,移动给一分,这两分相互比较, 两分的内容大致一样,单有出入!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP