Chinaunix

标题: 请大家帮忙看看这个sql如何实现? [打印本页]

作者: swingero    时间: 2003-01-15 11:43
标题: 请大家帮忙看看这个sql如何实现?
我有一个表,名称为ipflows,结构为(ipname,groupname,flows)
现在需要实现对于ipflows中的每一个groupname,查询出flows最大的前n个ipname,
即最后的记录条数为ipflows中distinct(groupname)的个数*n,并且每一个groupname需要对应n个ipname
请问,如何实现?
谢谢!
作者: CCBZZP    时间: 2003-01-15 12:32
标题: 请大家帮忙看看这个sql如何实现?
關于這個問題我在很多論壇上都發現有人提起
用一個SQL語句很難實現的
建議寫個PROCEDURE來實現吧
作者: CCBZZP    时间: 2003-01-15 12:38
标题: 请大家帮忙看看这个sql如何实现?
http://www.oradb.net/bbs_detail.asp?bbsid=2&select_id=17457&rr=2
作者: swingero    时间: 2003-01-15 13:31
标题: 请大家帮忙看看这个sql如何实现?
这个回答是不正确的,语法就通不过
作者: myhuaer    时间: 2003-01-16 11:02
标题: 请大家帮忙看看这个sql如何实现?
如果我没有理解错的话:
应该下面的sql语句可以帮你搞定,如果搞定的话不要忘记谢谢我!
create table ipflows(ipname varchar2(15),groupname varchar2(10),flows number(2))
insert into ipflows values('lis','mis',27)
insert into ipflows values('aaron','mis',27)
insert into ipflows values('frank','mis',27)
insert into ipflows values('scott','mis',27)
insert into ipflows values('anny','sys',21)
insert into ipflows values('ahill','sys',22)
insert into ipflows values('alan','sys',23)
insert into ipflows values('geo','mis',24)

select ipname,groupname,flows
from ipflows
where flows =(select max(flows) from ipflow)
      and rwonum < 4  
结果:
ipname  groupname  flows (<n+1)  n=3
lis       mis       27
aaron     mis       27
frank     mis       27
---没有
---scott     mis       27
作者: myhuaer    时间: 2003-01-16 11:03
标题: 请大家帮忙看看这个sql如何实现?
sorry 真的看错了




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2