Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 使用oracle-11g返回子组的每个最大计数_Sql_Oracle_Oracle11g_Group By_Aggregate Functions - Fatal编程技术网

Sql 使用oracle-11g返回子组的每个最大计数

Sql 使用oracle-11g返回子组的每个最大计数,sql,oracle,oracle11g,group-by,aggregate-functions,Sql,Oracle,Oracle11g,Group By,Aggregate Functions,我有一张桌子 CREATE TABLE table1 ( from_id varchar2(10), to_id varchar2(10), b_id varchar2(20) NOT NULL, exp_in_date varchar2(20) NOT NULL ); 样本数据: Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140203056',TO_DATE('2014

我有一张桌子

CREATE TABLE table1
(
   from_id varchar2(10),
   to_id varchar2(10),
   b_id varchar2(20) NOT NULL,
   exp_in_date varchar2(20) NOT NULL
);
样本数据:

Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140203056',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140203056',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203056',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140203057',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('2','5','20140203057',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203057',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140203058',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('2','5','20140203058',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203058',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140203059',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('2','5','20140203059',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203059',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140204059',TO_DATE('20140204', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140204059',TO_DATE('20140204', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140204059',TO_DATE('20140204', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140204059',TO_DATE('20140204', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','2','20140204059',TO_DATE('20140204', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203060',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203060',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203060',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203060',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','4','20140203061',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','3','20140203062',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','3','20140203062',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','3','20140203062',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','3','20140203062',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','3','20140203062',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203063',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203063',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203063',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203063',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203064',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203064',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203064',TO_DATE('20140203', 'yyyymmdd'));
Insert into TABLE1 (FROM_ID,TO_ID,B_ID,EXP_IN_DATE) values ('5','1','20140203064',TO_DATE('20140203', 'yyyymmdd'));
我想得到每个'4'b_id的最大计数*,每个4 b_id代表一个小时内的事务,比方说

20140203056至20140203059

e、 g.预期结果

Date-hr                     from_id to_id   count(no_record)
------------------------------------------------------------
February, 03 2014 14:00     2       5       1   
February, 03 2014 14:00     5       1       1   

我可以做简单的分组。我想我可以用PLSQL编写它,但是该查询的性能非常重要。如果没有更好的解决方案,我希望执行for loop和ifbevered than比较。

您的意思是这样的吗

select count(*) countx,from_id,to_id,exp_in_date
from table1
group by from_id,to_id,exp_in_date;

请参阅。

我不明白每个“4”个b\u id的最大计数*。而且我也不明白每个4个b\u id代表一小时内的交易。抱歉,我的演示不好。它是关于+获取下一个“4”b_id的最大值,例如事务5,2的最大from_id和to_id是9-对于b_id1+事务5,2的最大from_id和to_id是3-对于b_id2,事务5,2的最大from_id和to_id是1-对于b_id3,事务5,2的最大from_id和to_id是10-对于b_id4我在寻找bid1的子组,4是10 b_id=4,虽然b_id5的下一个值是99,事务5的最大from_id和to_id是99-对于b_id5,你可以认为b_id来自yyyyymmddxxx–其中XXX是每个事务在一小时内的顺序,我仍然不明白。事务5,2的最大from_id和to_id为9事务5,2是什么?它是否由from_id=5和to_id=2的行表示?表中所有行的maxfrom_id为5,表中所有行的maxto_id为5。那么最大值是9?请编辑OP,使其更清楚,这是更有用的,然后添加大量的评论。我认为详细阐述你的例子是有道理的。您如何计算从20140203056到20140203059的交易的预期结果。很抱歉,我不知道如何在注释中添加换行符。对事务5,2表示从_id5到_id2。最后一个事务只是一个示例,用于解释每“4个b_id”的最大计数*。结果为选择b_id、从_id到_id,将*从表1中计算为x按从\u ID,到\u ID,B\u ID选择到\u date到\u numbersSubstrb\u ID,1,8,'yyyymmdd'作为mydate,B\u ID,从\u ID,到\u ID,x作为记录编号,truncto_Numbers Substrb_id,9,3/4,0作为时钟,按to_Numbers Substrb_id分区上的行数,1,8,truncto_Numbers Substrb_id,9,3/4,0,FROM_id,to_id按x desc tom从结果排序