标签: oracle-analytics

Oracle上的条件SUM

我想用条件SUM进行查询.在重置之后,SUM需要超过15.像这样:

A | 3 | 3 
B | 7 | 10 
C | 6 | 16  -- ====
D | 5 | 5 
E | 9 | 14
F | 3 | 17  -- ====
G | 8 | 8
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

sql oracle oracle-analytics oracle12c

9
推荐指数
1
解决办法
499
查看次数

复制记录以填补日期之间的差距

我需要做一些非常奇怪的事情,即在视图中创建虚假记录以填补产品价格的发布日期之间的差距.

实际上,我的情况比这复杂一点,但我已经简化为产品/日期/价格.

假设我们有这张表:

create table PRICES_TEST
(
   PRICE_DATE    date          not null,
   PRODUCT       varchar2(13) not null,
   PRICE         number
);

alter table PRICES_TEST 
  add constraint PRICES_TEST_PK
    primary key (PRICE_DATE, PRODUCT);
Run Code Online (Sandbox Code Playgroud)

有了这些记录:

insert into PRICES_TEST values (date'2012-04-15', 'Screw Driver', 13);
insert into PRICES_TEST values (date'2012-04-18', 'Screw Driver', 15);

insert into PRICES_TEST values (date'2012-04-13', 'Hammer', 10);
insert into PRICES_TEST values (date'2012-04-16', 'Hammer', 15);
insert into PRICES_TEST values (date'2012-04-19', 'Hammer', 17);
Run Code Online (Sandbox Code Playgroud)

选择记录将返回给我:

PRICE_DATE                PRODUCT       PRICE                  
------------------------- ------------- ---------------------- 
13-Apr-2012 00:00:00      Hammer        10                     
16-Apr-2012 …
Run Code Online (Sandbox Code Playgroud)

sql oracle relational-database oracle-analytics

8
推荐指数
2
解决办法
6216
查看次数

Sql(在Oracle上)按天计算老化报告

我需要帮助写一篇关于oracle的老化报告.报告应该像:

 aging file to submit total       17
 aging file to submit 0-2 days    3
 aging file to submit 2-4 days    4
 aging file to submit 4-6 days    4
 aging file to submit 6-8 days    2 
 aging file to submit 8-10 days   4
Run Code Online (Sandbox Code Playgroud)

我可以为每个部分创建一个查询,然后将所有结果联合起来,如:

select 'aging file to submit total  ' || count(*) from FILES_TO_SUBMIT where trunc(DUE_DATE) > trunc(sysdate) -10
union all
select 'aging file to submit 0-2 days ' || count(*) from FILES_TO_SUBMIT where trunc(DUE_DATE) <= trunc(sysdate)  and trunc(DUE_DATE) >= …
Run Code Online (Sandbox Code Playgroud)

sql oracle oracle11g oracle-analytics

6
推荐指数
2
解决办法
2819
查看次数

Oracle Analytics窗口

鉴于下表

PAYMENT_Date  TRANSACTION_TYPE     PAYMENT_AMT
1/1/2012      P                    184366     
1/1/2012      R                    -5841     
1/2/2012      P                    941
1/3/2012      P                    901
1/3/2012      R                    5841
Run Code Online (Sandbox Code Playgroud)

以及以下查询:

select  payment_date, transaction_type, payment_amt,
        SUM(payment_amt) OVER(ORDER BY payment_date, transaction_type 
            RANGE BETWEEN CURRENT ROW AND UNBOUNDED FOLLOWING) AS RUNNING_BALANCE
from    TABLE;
Run Code Online (Sandbox Code Playgroud)

我得到这些结果:

PAYMENT_Date  TRANSACTION_TYPE     PAYMENT_AMT  RUNNING_BALANCE
1/1/2012      P                    184366       0
1/1/2012      R                    -5841        -184366
1/2/2012      P                    941          -178525
1/3/2012      P                    901          -179466
1/3/2012      R                    5841         -180367
Run Code Online (Sandbox Code Playgroud)

预期:

PAYMENT_Date  TRANSACTION_TYPE     PAYMENT_AMT  RUNNING_BALANCE
1/1/2012      P                    184366       0
1/1/2012      R                    -5841        184366
1/2/2012      P …
Run Code Online (Sandbox Code Playgroud)

sql oracle analytic-functions oracle-analytics

2
推荐指数
2
解决办法
771
查看次数