200121510037692,0
200220710513343,1
200220710513343,1
200220710513343,1
200220710513343,1
200220710513344,1
200220710513344,1
200220710513344,2
200223210325997,2
200223210463443,2
20032011034322377,2
200320510211160,2
200320510371118,2
200320510375232,2
200320510475891,3
200320510499806,3
200320510507023,3
200320510513821,3
200320532000313,3
2003212101030030,2
2003212101030310,3
20032121010313880,2
2003212101041020,4
2003212101132790,4
2003212101154600,4
200321232009602,4
200321410025412,4
200321410028958,4
200321410029462,4
200321410047129,4
200321510084672,4
200321510211516,4
200321510213759,4
200322410501075,4
200322410501077,4
200322410501077,4这是一批号码是一个CSV文件,有30万行这样的记录,我现在要做这样一个统计:
一、第一列中,尾数为000-999,各有多少个号码?(包括重复)
二、第一列中,尾数为000-999,各有多少个号码?(不包括重复)
200220710513343,1
200220710513343,1
200220710513343,1
200220710513343,1
200220710513344,1
200220710513344,1
200220710513344,2
200223210325997,2
200223210463443,2
20032011034322377,2
200320510211160,2
200320510371118,2
200320510375232,2
200320510475891,3
200320510499806,3
200320510507023,3
200320510513821,3
200320532000313,3
2003212101030030,2
2003212101030310,3
20032121010313880,2
2003212101041020,4
2003212101132790,4
2003212101154600,4
200321232009602,4
200321410025412,4
200321410028958,4
200321410029462,4
200321410047129,4
200321510084672,4
200321510211516,4
200321510213759,4
200322410501075,4
200322410501077,4
200322410501077,4这是一批号码是一个CSV文件,有30万行这样的记录,我现在要做这样一个统计:
一、第一列中,尾数为000-999,各有多少个号码?(包括重复)
二、第一列中,尾数为000-999,各有多少个号码?(不包括重复)
a初始化一个数组作计数器 [0,999]个元素为0
b.取一行
c.取字串尾三位,转成整数i,相应数组元素a[i]加1
d.如果未结束则转 b不包括重复的:(前提是已经排序)
a.初始化一个数组作计数器 a[0,999]个元素为0,和一个临时变量T='';
b.取一行,如果这行的内容等于T,转b // 跳过重复行
c.把当前行内容存入T
d.取字串尾三位,转成整数i,相应数组元素a[i]加1
e.如果未结束则转 b
ooo,999:float;
begin
读入“,”以前的串;
if pos('000')=串长-3 then inc(ooo)
else pos('999')=串长-3 then inc(999);
end;
我是新手,不知道这样能不能解决问题,献丑了。
select count(*) from XX where LEFT(你的串,3)='999'
重复的:
select distinct count(*) from XX where LEFT(你的串,3)='999'...............
好久没写SQL了.可能有的拼错了,但思路是这样