| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2038 人关注过本帖
标题:请帮忙排序
只看楼主 加入收藏
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:0 
回复 6楼 sdta
主要研究一下算法哈,确实数据量偏少。
2023-03-19 13:55
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:0 
回复 7楼 吹水佬
请问如何优化结构,使之更合理?谢谢!
2023-03-19 13:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
上传的这点数据,最多1秒

坚守VFP最后的阵地
2023-03-19 14:13
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:0 
回复 13楼 sdta
测试数据:
xqpx.rar (386.5 KB)
(虚拟数据中包含30个地市、每个地市包含20个县、每个县包含13所学校,有9个学科,共计70200条记录)
其中,地市名称dsmc、县区名称xqmc、学校名称xxmc、学科xk(拼音代替汉字)、均分jf、联考排序lkpx(按学科均分通排)、本市排序bspx(以学科均分按地市排序)、本县排序(以学科均分按县排序)。谢谢!

[此贴子已经被作者于2023-3-19 18:06编辑过]

2023-03-19 17:56
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
是排序还是排名次,具体要求是什么

坚守VFP最后的阵地
2023-03-19 18:03
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:0 
回复 15楼 sdta
排名哈(现在一般不说排名,改为排序,哈哈^_^),我没有说清楚,相同分数相同名次,联考排序lkpx(按学科均分通排)、本市排序bspx(以学科均分按地市排序)、本县排序(以学科均分按县排序)谢谢!

[此贴子已经被作者于2023-3-19 18:09编辑过]

2023-03-19 18:07
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
排名规则是:12225 还是12223?

坚守VFP最后的阵地
2023-03-19 18:31
schtg
Rank: 12Rank: 12Rank: 12
来 自:Usa
等 级:贵宾
威 望:67
帖 子:1712
专家分:3318
注 册:2012-2-29
收藏
得分:0 
回复 17楼 sdta
排名规则是:12225,谢谢!
2023-03-19 18:50
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:16 
程序代码:
CLOSE DATABASES 
SET COLLATE TO "MACHINE" 
* 联考名次
SELECT * FROM xqpx ORDER BY xk, jf DESC INTO CURSOR temp READWRITE 
BLANK FIELDS lkpx ALL 
lcxk = SPACE(0) && 学科
lnjf = 0 && 均分
lnmc = 1 && 名次
lnrs = 0 && 记录全部同科人数
SCAN 
    lnrs = lnrs + 1
    IF xk == lcxk
        IF jf = lnjf
        ELSE 
            lnmc = lnrs
        ENDIF 
    ELSE 
        lnmc = 1
        lnrs = 1
    ENDIF 
    REPLACE lkpx WITH lnmc
    lcxk = xk
    lnjf = jf
    lnmc = lkpx
ENDSCAN
* 同市同科名次
SELECT * FROM temp ORDER BY dsmc,xk, jf DESC INTO CURSOR temp READWRITE
BLANK FIELDS bspx ALL 
lcxk = SPACE(0) && 学科
lnjf = 0 && 均分
lnmc = 1 && 名次
lnrs = 0 && 记录本市同科人数
lcbs = SPACE(0) && 地市名称
SCAN 
    lnrs = lnrs + 1
    IF dsmc == lcbs AND xk == lcxk
        IF jf = lnjf
        ELSE 
            lnmc = lnrs
        ENDIF 
    ELSE 
        lnmc = 1
        lnrs = 1
    ENDIF 
    REPLACE bspx WITH lnmc
    lcxk = xk
    lnjf = jf
    lnmc = bspx
    lcbs = dsmc
ENDSCAN
* 同县同科名次
SELECT * FROM temp ORDER BY xqmc,xk, jf DESC INTO CURSOR temp READWRITE
BLANK FIELDS bxpx ALL 
lcxk = SPACE(0) && 学科
lnjf = 0 && 均分
lnmc = 1 && 名次
lnrs = 0 && 记录本县同科人数
lcbx = SPACE(0) && 县名称
SCAN 
    lnrs = lnrs + 1
    IF xqmc == lcbx AND xk == lcxk
        IF jf = lnjf
        ELSE 
            lnmc = lnrs
        ENDIF 
    ELSE 
        lnmc = 1
        lnrs = 1
    ENDIF 
    REPLACE bxpx WITH lnmc
    lcxk = xk
    lnjf = jf
    lnmc = bxpx
    lcbx = xqmc
ENDSCAN
BROWSE 


[此贴子已经被作者于2023-3-19 22:36编辑过]


坚守VFP最后的阵地
2023-03-19 22:34
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:335
帖 子:9841
专家分:27213
注 册:2012-2-5
收藏
得分:0 
运行时间 <1.5s

坚守VFP最后的阵地
2023-03-19 22:47
快速回复:请帮忙排序
数据加载中...
 
   



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

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