| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5422 人关注过本帖
标题:按班级排名次问题
只看楼主 加入收藏
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:0 
以下是引用sdta在2016-12-10 17:53:08的发言:

请大家测试一下50W条记录运行时间是多少(在我的电脑上5-6秒,包括测试数据的生成)
T1=SECONDS()
CREATE CURSOR Cj (班级 C(5),姓名 C(10),总分 N(4),班级名次 N(6),年级名次 N(6))
=RAND(-1)
FOR I=1 TO 10000
    FOR J=1 TO 50
        INSERT INTO Cj (班级,姓名,总分) VALUES ("B"+PADL(I,4,"0"),SYS(2015),RAND()*100)
    ENDFOR
ENDFOR
INDEX ON 班级-STR(总分,4) TAG px DESCENDING
* 班级名次
mc=1 && 记录班级名次
nzf=0 && 记录上条记录的总分
cbj="" && 记录班级名称
nrs=1 && 记录班级人数
SCAN
    IF ALLTRIM(班级)!=cbj  
        STORE 1 TO nrs,mc
    ELSE
        IF 总分!=nzf
            mc=nrs
        ENDIF
    ENDIF
    REPLACE 班级名次 WITH mc
    nrs=nrs+1
    nzf=总分
    cbj=ALLTRIM(班级)
ENDSCAN
SET ORDER TO
* 年级名次
INDEX ON -总分 TO px
mc=0
nzf=0
nrs=1
SCAN
    IF 总分!=nzf
        mc=nrs
    ENDIF
    REPLACE 年级名次 WITH mc
    nrs=nrs+1
    nzf=总分
ENDSCAN
MESSAGEBOX("共运行:"+TRANSFORM(SECONDS())+" 秒")
BROWSE



5-6秒?好快噻
2016-12-10 23:46
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1571
专家分:3044
注 册:2012-2-29
收藏
得分:0 
真的很快,谢谢!
2016-12-11 08:22
andy292
Rank: 2
等 级:论坛游民
威 望:1
帖 子:86
专家分:13
注 册:2005-2-26
收藏
得分:0 
谢谢斑竹大大
2016-12-11 13:09
antony521
Rank: 3Rank: 3
等 级:论坛游侠
威 望:1
帖 子:170
专家分:175
注 册:2009-8-20
收藏
得分:0 
这差距也太大了!
图片附件: 游客没有浏览图片的权限,请 登录注册
2016-12-13 10:39
星光悠蓝
Rank: 9Rank: 9Rank: 9
来 自:山水甲天下
等 级:贵宾
威 望:52
帖 子:522
专家分:1258
注 册:2010-1-11
收藏
得分:0 
以下是引用antony521在2016-12-13 10:39:52的发言:

这差距也太大了!
没有减去运行初始时间!
2016-12-14 08:43
schtg
Rank: 12Rank: 12Rank: 12
来 自:https://t.me/pump_upp
等 级:贵宾
威 望:67
帖 子:1571
专家分:3044
注 册:2012-2-29
收藏
得分:0 
哈哈哈哈,原来如此!
2016-12-15 13:07
chychychy
Rank: 2
等 级:论坛游民
帖 子:201
专家分:91
注 册:2015-4-18
收藏
得分:0 
图片附件: 游客没有浏览图片的权限,请 登录注册

怎么差别这么大
前天 11:05
快速回复:按班级排名次问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.030087 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved