注册 登录
编程论坛 VFP论坛

请教各位大大,怎么求某列中重复的数字个数?

shonken 发布于 2023-06-07 23:24, 781 次点击
程序代码:

CREATE CURSOR 测试表 (项目1 Y)
INSERT INTO 测试表 VALUES (1)
INSERT INTO 测试表 VALUES (2)
INSERT INTO 测试表 VALUES (2)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (7)
INSERT INTO 测试表 VALUES (8)
INSERT INTO 测试表 VALUES (9)
INSERT INTO 测试表 VALUES (10)
INSERT INTO 测试表 VALUES (11)
INSERT INTO 测试表 VALUES (12)
INSERT INTO 测试表 VALUES (13)
INSERT INTO 测试表 VALUES (14)
INSERT INTO 测试表 VALUES (15)

需要的结果:1[2]+2[3]=3个重复了
数字2有两个,一个是正常输入,一个是重复输入;
数字3有三个,一个是正常输入,两个是重复输入
14 回复
#2
shonken2023-06-07 23:53
算了用count
程序代码:

ln重复评=0
For j=15 To 1 Step -1
    Count For 评委9=j To ln重复数
    If ln重复数>1
        ln重复评=ln重复评+(ln重复数-1)
    ELSE
        ln重复评=ln重复评
    Endif
Endfor
?ln重复评


不知有什么更好的方法?
#3
mywisdom882023-06-08 00:25
CREATE CURSOR 测试表 (项目1 Y)
INSERT INTO 测试表 VALUES (1)
INSERT INTO 测试表 VALUES (2)
INSERT INTO 测试表 VALUES (2)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (7)
INSERT INTO 测试表 VALUES (8)
INSERT INTO 测试表 VALUES (9)
INSERT INTO 测试表 VALUES (10)
INSERT INTO 测试表 VALUES (11)
INSERT INTO 测试表 VALUES (12)
INSERT INTO 测试表 VALUES (13)
INSERT INTO 测试表 VALUES (14)
INSERT INTO 测试表 VALUES (15)
SELECT SUM(个数)  as 总数 FROM (SELECT COUNT(项目1)- 1 as 个数 ,项目1 FROM 测试表  GROUP BY 项目1 HAVING COUNT(1) - 1 > 0 ) T1
#4
sdta2023-06-08 00:27
SELECT 项目1, COUNT(*) sz FROM 测试表 GROUP BY 项目1 HAVING COUNT(*) > 1
#5
shonken2023-06-08 09:13
以下是引用mywisdom88在2023-6-8 00:25:08的发言:

CREATE CURSOR 测试表 (项目1 Y)
INSERT INTO 测试表 VALUES (1)
INSERT INTO 测试表 VALUES (2)
INSERT INTO 测试表 VALUES (2)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (3)
INSERT INTO 测试表 VALUES (7)
INSERT INTO 测试表 VALUES (8)
INSERT INTO 测试表 VALUES (9)
INSERT INTO 测试表 VALUES (10)
INSERT INTO 测试表 VALUES (11)
INSERT INTO 测试表 VALUES (12)
INSERT INTO 测试表 VALUES (13)
INSERT INTO 测试表 VALUES (14)
INSERT INTO 测试表 VALUES (15)
SELECT SUM(个数)  as 总数 FROM (SELECT COUNT(项目1)- 1 as 个数 ,项目1 FROM 测试表  GROUP BY 项目1 HAVING COUNT(1) - 1 > 0 ) T1


谢谢版主
#6
shonken2023-06-08 09:14
以下是引用sdta在2023-6-8 00:27:47的发言:

SELECT 项目1, COUNT(*) sz FROM 测试表 GROUP BY 项目1 HAVING COUNT(*) > 1

我之前也是用这个,但不能准确达到目的
#7
吹水佬2023-06-08 10:13
以下是引用shonken在2023-6-8 09:14:42的发言:


我之前也是用这个,但不能准确达到目的

只是要重复多出来的数3,直接用 有重复的记录数 - 无重复的记录数 = 3
SELECT DISTINCT 项目1 FROM 测试表 INTO CURSOR tmp
? RECCOUNT("测试表")-RECCOUNT("tmp")
#8
shonken2023-06-08 14:41
以下是引用吹水佬在2023-6-8 10:13:41的发言:


只是要重复多出来的数3,直接用 有重复的记录数 - 无重复的记录数 = 3
SELECT DISTINCT 项目1 FROM 测试表 INTO CURSOR tmp
? RECCOUNT("测试表")-RECCOUNT("tmp")

换个思路
#9
chychychy2024-08-23 17:52
留个脚印,学习了,尤其7楼思路
#10
schtg2024-08-23 19:12
回复 7楼 吹水佬
学习啦,谢谢!
#11
laowan0012024-08-23 20:53
很久没见吹版说话了
#12
吹水佬2024-08-24 09:40
以下是引用laowan001在2024-8-23 20:53:09的发言:

很久没见吹版说话了

去年开始就去当免费保母了。
没空写东东,只能抽空上来逛逛。

#13
nbwww2024-08-24 10:08
以下是引用吹水佬在2024-8-24 09:40:42的发言:


去年开始就去当免费保母了。
没空写东东,只能抽空上来逛逛。

#14
wxzd1232024-08-24 11:21
回复 12楼 吹水佬
升级了,恭喜
#15
jinanshui昨天 06:19
学习啦,谢谢!
1