ITPUB??ì3
ITPUB论坛 » Oracle开发 » 请教:如何实现?

标题: 请教:如何实现?
离线 Arraynicole1108
初级会员



精华贴数 0
个人空间 0
技术积分 40 (31632)
社区积分 2 (22683)
注册日期 2001-11-30
论坛徽章:1
授权会员     
      

发表于 2001-12-12 13:09 
请教:如何实现?

在表
creat table table1
(pay   VARCHAR2(50),
time  date);
中以时间排序,pay列有海量的数据,
打个比方: pay列中有(23,23,59,87,87,87,10,10,47,56,32,32......etc.)
现在需要统计的是:pay中字段出现1次的数量和相同字段连续出现2次,3次,4次.....的数量。(不知道我说清楚了吗?)
要如何作呢?



只看该作者    顶部
离线 zhuzhichao
炎龙骑士


精华贴数 2
个人空间 0
技术积分 1684 (982)
社区积分 195 (2357)
注册日期 2001-10-15
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2001-12-12 13:17 
不是太懂你的意思.

是不是想這樣:

select pay,count(*) from table1
group by pay having count(*) > 1;


__________________
zhuzhichao@itpub.net
只看该作者    顶部
离线 nicole1108
初级会员



精华贴数 0
个人空间 0
技术积分 40 (31632)
社区积分 2 (22683)
注册日期 2001-11-30
论坛徽章:1
授权会员     
      

发表于 2001-12-12 13:38 
是这样
比如上面我举的例子中:23连续出现2次,32连续出现2次,10连续出现2次,那就说明连续出现2次的数有三个。连续出现3次的有一个(87),只出现1次的有三个(59,47,56)
我只要那个数量,说清楚了吗?


只看该作者    顶部
离线 scwang
中级会员



精华贴数 2
个人空间 0
技术积分 745 (2503)
社区积分 269 (1978)
注册日期 2001-12-3
论坛徽章:2
ITPUB元老授权会员    
      

发表于 2001-12-12 13:57 
这样就能搞定

select count(*),x
from
(select count(*) x,pay
from  t1
group by pay
)
group by x


__________________
no more
只看该作者    顶部
离线 watchdog_hu
一般会员



精华贴数 0
个人空间 0
技术积分 160 (11239)
社区积分 3 (19068)
注册日期 2001-11-8
论坛徽章:1
授权会员     
      

发表于 2001-12-12 14:01 
Re: 这样就能搞定



QUOTE:
最初由 scwang 发布
select count(*),x
from
(select count(*) x,pay
from  t1
group by pay
)
group by x


u didn't catch what the author demanded.
I guess u need a procedure.


只看该作者    顶部
离线 scwang
中级会员



精华贴数 2
个人空间 0
技术积分 745 (2503)
社区积分 269 (1978)
注册日期 2001-12-3
论坛徽章:2
ITPUB元老授权会员    
      

发表于 2001-12-12 14:09 
Re: Re: 这样就能搞定



QUOTE:
最初由 watchdog_hu 发布


u didn't catch what the author demanded.
I guess u need a procedure.


是吗?你有何高见?


__________________
no more
只看该作者    顶部
离线 nicole1108
初级会员



精华贴数 0
个人空间 0
技术积分 40 (31632)
社区积分 2 (22683)
注册日期 2001-11-30
论坛徽章:1
授权会员     
      

发表于 2001-12-12 14:26 
是需要一个存储过程,可能还要建个表:(
各位高手,帮帮忙,如何实现阿


只看该作者    顶部
离线 obenben
叶开


精华贴数 3
个人空间 0
技术积分 3573 (399)
社区积分 91 (3534)
注册日期 2001-10-15
论坛徽章:11
现任管理团队成员ITPUB元老ITPUB北京九华山庄2008年会纪念徽章管理团队2007贡献徽章ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章
会员2007贡献徽章会员2006贡献徽章2008年新春纪念徽章ITPUB新首页上线纪念徽章  

发表于 2001-12-12 15:05 
小猫咪,不会是你吧?!呵呵,怎么,又折腾计费系统呢?

还是讲讲业务需求吧,结合你的需求与实现才能设计数据结构呀;
要不,来电话;


__________________
------------------
客户关系管理 客户营销 客户Web2.0营销
Email:kayeervan@hotmail.com
Blog:http://blog.sina.com.cn/kayeer
WebSite:http://www.huntor.cn
只看该作者    顶部
离线 easyfree
去留无意 聚散两难


精华贴数 32
个人空间 0
技术积分 14126 (78)
社区积分 4061 (337)
注册日期 2001-9-24
论坛徽章:8
现任管理团队成员ITPUB元老ITPUB北京九华山庄2008年会纪念徽章管理团队2006纪念徽章会员2006贡献徽章授权会员
行业板块每日发贴之星ITPUB新首页上线纪念徽章    

发表于 2001-12-12 15:34 


QUOTE:
最初由 nicole1108 发布
是这样
比如上面我举的例子中:23连续出现2次,32连续出现2次,10连续出现2次,那就说明连续出现2次的数有三个。连续出现3次的有一个(87),只出现1次的有三个(59,47,56)
我只要那个数量,说清楚了吗?


问题:
1. 所谓连续,是经过时间排序后的统计么? 即: 出现23,23,34,23,56这样的情况,只能算23连续出现了2次, 而后面一个23只能算1次?
2. 最后的结果是否希望类似这样:
PHP code:


times      amount

--------- ----------------

       
1          100

       2            50

       3          345

      
.....       .......

      
20             1

      
.....       .......




__________________
看我非我我看我我亦非我
只看该作者    顶部
离线 nicole1108
初级会员



精华贴数 0
个人空间 0
技术积分 40 (31632)
社区积分 2 (22683)
注册日期 2001-11-30
论坛徽章:1
授权会员     
      

发表于 2001-12-12 15:44 
是的
你的理解完全对!
1)是按时间统计的,后面出现的23只能算1次
2)结果是这样的


只看该作者    顶部
相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问