Solved

# Average number of records for past 3 fiscal years grouped by fiscal month

Posted on 2014-01-07
341 Views
Hi Experts:

I need to  count a certain type of order for the past 3 fiscal years breaking the data out by fiscal month.  So the first number would be the average the count of records for Jan 2013, Jan 2012, Jan 2011, and so on.  The database has a table called ORDERS and one called ORDER_DATE

Here is what I came up with for the full set of data:
select count(*) as myCount,
od.fiscal_month,
od.fiscal_year
from orders o
INNER JOIN order_date od ON o.datesubmitted = od.caldate
where od.fiscalyear in (2013,2012,2011)
and o.order_type='Y'
group by od.fiscal_year,od.fiscal_month
order by od.fiscal_month
I get this:
cnt  fm          fy
72 01          2011
84 01          2012
96 01          2013
72 02          2011
85 02          2012
90 02          2013
and so on for each fiscal month for each of the three fiscal years.

What I really want is the average for each month like this:
avg  fm  (72+94+96)/3
84    01
82.3  02  (72+85+90)/3

and so on.

I can get the average of ALL, but I want it broken out by fiscal month over the past 3 fiscal years.

Any ideas?

Thanks!
0
• 2

LVL 73

Accepted Solution

sdstuber earned 500 total points
ID: 39763042
select avg(cnt), fm from
(select count(*) as myCount,
od.fiscal_month,
od.fiscal_year
from orders o
INNER JOIN order_date od ON o.datesubmitted = od.caldate
where od.fiscalyear in (2013,2012,2011)
and o.order_type='Y'
group by od.fiscal_year,od.fiscal_month)
group by fm
order by fm
0

LVL 31

Expert Comment

ID: 39765506
select avg(cnt) avg, fm from
(select count(*) over (partition by od.fiscal_month order by od.fiscal_year) cnt, fiscal_month fm
from orders o inner join order_date od on o.datesubmitted = od.caldate
where od.fiscal_year between 2011 and 2013
and o.order_type = 'Y')
0

Author Closing Comment

ID: 39765524
Thanks a bunch.. I was very close, but this cleared it up!
0

LVL 73

Expert Comment

ID: 39765536
ID: 39765506

is illegal syntax (no group by) and the analytic will produce the incorrect results
you need to maintain the year within the groups/partitions
0

## Join & Write a Comment Already a member? Login.

Background In several of the companies I have worked for, I noticed that corporate reporting is off loaded from the production database and done mainly on a clone database which needs to be kept up to date daily by various means, be it a logical…
This post first appeared at Oracleinaction  (http://oracleinaction.com/undo-and-redo-in-oracle/)by Anju Garg (Myself). I  will demonstrate that undo for DML’s is stored both in undo tablespace and online redo logs. Then, we will analyze the reaso…
This video explains at a high level with the mandatory Oracle Memory processes are as well as touching on some of the more common optional ones.
This video shows, step by step, how to configure Oracle Heterogeneous Services via the Generic Gateway Agent in order to make a connection from an Oracle session and access a remote SQL Server database table.

#### 705 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

#### Need Help in Real-Time?

Connect with top rated Experts

14 Experts available now in Live!