| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2661 人关注过本帖
标题:求连续出现的最大值
取消只看楼主 加入收藏
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
结帖率:73.97%
收藏
已结贴  问题点数:20 回复次数:12 
求连续出现的最大值
如表:
bmax.rar (271 Bytes)

条件:
1、对连续出现“M1ZR”的个数统计,
2、对连续出现个数在前10行中(含第10行)进行比较,连续出现数为最大值时,在对应的字段"m1zrmax"标注 “M1ZRMAX”
如表中第10、14、24、32、42行.
谢谢!


[此贴子已经被作者于2021-6-25 10:47编辑过]

搜索更多相关主题的帖子: 表中 最大值 标注 个数 出现 
2021-06-25 10:23
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2021-6-25 14:03:51的发言:

全部记录都是“M1ZR”时怎样标注“M1ZRMAX”

1、首先是统计连续出现的数;
2、再每10行比较一次,第1次比较1-10行,第2次比较2-11行……。
3、标注时,当第10行的字段m1zr不为空时标注,否则不标注,类推;
可能此表结构有问题,以下表为准。
bmax.rar (310 Bytes)


[此贴子已经被作者于2021-6-25 15:10编辑过]

2021-06-25 14:56
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2021-6-25 14:49:52的发言:

从提供的数据猜想按每10条记录一组统计
DIMENSION arr[1]
ar = 0
n = 0
m = 0
nMax = 0
USE bmax
BLANK FIELDS m1zrmax ALL
SCAN
    IF ALLTRIM(m1zr)=="M1ZR"
        m = m +1
        IF m > nMax
            nMax = m
            n = RECNO()
        ENDIF
    ELSE
        m = 0
    ENDIF
    IF RECNO()%10==0 AND n>0
        ar = ar + 1
        DIMENSION arr[ar]  
        arr[ar] = n
        n = 0
        m = 0
        nMax = 0
    ENDIF
ENDSCAN
IF n > 0
    ar = ar + 1
    DIMENSION arr[ar]  
    arr[ar] = n
ENDIF
FOR i=1 TO ALEN(arr)
    GO arr[i]
    REPLACE m1zrmax WITH "M1ZRMAX"
ENDFOR
SELECT * FROM bmax

谢谢!
但最后一条记录无标注。

[此贴子已经被作者于2021-6-25 15:09编辑过]

2021-06-25 15:00
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
给你添麻烦了!


[此贴子已经被作者于2021-6-25 15:13编辑过]

2021-06-25 15:05
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
应该是这个结果:
bmax.rar (315 Bytes)

第10行开始,1-10比较;2-11行比较;3-12行比较.......
不需要在字段m1zR不为空时才标,只要在10、11、12.……行都注明前10行连续出现的最大值也行

[此贴子已经被作者于2021-6-25 15:39编辑过]

2021-06-25 15:26
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
版主,就在10行开始,在每行都注明前10行连续出现的最大值
如下表:
bmax.rar (282 Bytes)


[此贴子已经被作者于2021-6-25 15:48编辑过]

2021-06-25 15:47
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2021-6-25 16:06:12的发言:

还是有点不明
看看第14行记录
从12--21 是统计结果 3

从13--22 是统计结果 2

第14行记录到底取3还是2

是这样,它是这10行的连续出现的结果,与10行外的连续次数无关
2021-06-25 16:41
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2021-6-25 16:06:12的发言:

还是有点不明
看看第14行记录
从12--21 是统计结果 3

从13--22 是统计结果 2

第14行记录到底取3还是2


按包含14行的前10行计,应该是取3,22行取2是对的
这个对最后的应用无关系

[此贴子已经被作者于2021-6-25 16:48编辑过]

2021-06-25 16:43
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
有劳版主了!!!
2021-06-25 16:47
fdqzy
Rank: 1
等 级:新手上路
帖 子:368
专家分:0
注 册:2016-8-15
收藏
得分:0 
以下是引用吹水佬在2021-6-25 18:20:34的发言:

还有这种情况:31、32行和41、42行

USE bmax
BLANK FIELDS m1zrmax ALL
FOR nRec=1 TO RECCOUNT() &&-10
    n = 0
    m = 0
    nMax = 0
    GO nRec
    SCAN NEXT 10
        IF ALLTRIM(m1zr)=="M1ZR"
            m = m + 1
            IF m > nMax
                nMax = m
                n = RECNO()
            ENDIF
        ELSE
            m = 0
        ENDIF
    ENDSCAN
    IF n > 0
        GO n
        IF nMax > VAL(m1zrmax)
            REPLACE m1zrmax WITH TRANSFORM(nMax)
        ENDIF
    ENDIF
ENDFOR
SELECT * FROM bmax

不要紧,这是上10行和下10行所致,像这种情况多。
谢谢!
2021-06-25 19:29
快速回复:求连续出现的最大值
数据加载中...
 
   



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

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