Solved

Calculating Quarterly average from monthly data

Posted on 2009-05-08
10
951 Views
Last Modified: 2012-05-06
Hi
In my application I need to calculate Quarterly average for Dow 30..
I have montly data available for dow30.
I need to generate quarterly and half yearly data from monthly data.
I need to create a stored Proc for this.
I am using Sql server 2005.
Any help will appreciated.
Thanks
0
Comment
Question by:ken_rgr
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 2
  • 2
10 Comments
 
LVL 75

Expert Comment

by:Aneesh Retnakaran
ID: 24336835


SELECT SUM(UrColumn) Total, DATENAME (qq, urDAteColumn ) as Quarter
FROM urTable
GROUP BY DATENAME (qq, urDAteColumn )
0
 
LVL 42

Expert Comment

by:pcelba
ID: 24336929
How do you identify month in your data? Is a date or string?

As the rough estimation you may use following (suppose monthNr is numeric month number 1 - 12, YearNr is four digits Year number):

SELECT cast((monthNr-1)/3 AS int)+1 Quarter, YearNr, AVG(monthlyValue)
  FROM YourTable
 GROUP BY cast((monthNr-1)/3 AS int), YearNr

SELECT cast((monthNr-1)/6 AS int)+1 HalfNr, YearNr, AVG(monthlyValue)
  FROM YourTable
 GROUP BY cast((monthNr-1)/6 AS int), YearNr

0
 

Author Comment

by:ken_rgr
ID: 24336993
The above solution is returning just 4 rows of data.
I have 10 years of monthly data(120 rows).
 That means it should return 30 rows.
Any better solution ???
0
Ransomware-A Revenue Bonanza for Service Providers

Ransomware – malware that gets on your customers’ computers, encrypts their data, and extorts a hefty ransom for the decryption keys – is a surging new threat.  The purpose of this eBook is to educate the reader about ransomware attacks.

 
LVL 42

Expert Comment

by:pcelba
ID: 24337023
The SP creation is also easy but you have to know how it should store/return results. If you just need above SELECTs in SP execute the following code (updated to your structures). You may create input parameters for date range in this SP etc.

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
 
CREATE PROCEDURE sp_quarterlyData 
 
AS
BEGIN
SET NOCOUNT ON;
 
SELECT cast((monthNr-1)/3 AS int)+1 Quarter, YearNr, AVG(monthlyValue)
  FROM YourTable
 GROUP BY cast((monthNr-1)/3 AS int), YearNr
 
END
GO

Open in new window

0
 
LVL 75

Expert Comment

by:Aneesh Retnakaran
ID: 24337060
SELECT SUM(UrColumn) Total, DATENAME (qq, urDAteColumn ) as Quarter , YEAR (urDateColumn ) as [Year]
FROM urTable
GROUP BY DATENAME (qq, urDAteColumn ) ,YEAR (urDateColumn )
0
 
LVL 42

Expert Comment

by:pcelba
ID: 24337071
My solution does not return just 4 rows.If you have date column then you may update it:

SELECT Datepart(qq, YourDate) Quarter, DatePart(yy, YourDate) YearNr, AVG(monthlyValue)
  FROM YourTable
 GROUP BY Datepart(qq, YourDate), DatePart(yy, YourDate)

0
 
LVL 42

Accepted Solution

by:
pcelba earned 500 total points
ID: 24337105
Half year data:

SELECT cast((Datepart(mm, YourDate)-1)/6 AS int)+1 HalfNr, DatePart(yy, YourDate) YearNr, AVG(monthlyValue)
  FROM YourTable
 GROUP BY cast((Datepart(mm, YourDate)-1)/6 AS int), DatePart(yy, YourDate)

0
 
LVL 42

Expert Comment

by:pcelba
ID: 24337336
The more accurate way would be to calculate half year and quarterly data from daily data because it reflects number of business days.
0
 

Author Comment

by:ken_rgr
ID: 24337460
Hi guys

Thank You very much for your Immediate response.
I am overwhelmed.
I am getting Quarterly averages for all the indexes.
But my table has 2 indexes one is Dow and second one is S&P.
how to get different avarages for these 2 separately
0
 
LVL 42

Expert Comment

by:pcelba
ID: 24340515
The groupping will remain unchanged, you just have to add one more column for S&P average calculation:

SELECT Datepart(qq, YourDate) Quarter, DatePart(yy, YourDate) YearNr, AVG(monthlyDOWValue) DOWavg, AVG(monthlySaPValue) SaPavg
  FROM YourTable
 GROUP BY Datepart(qq, YourDate), DatePart(yy, YourDate)

BTW, why you are not interested in NASDAQ?
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

If I have to fix slow responding website my first thoughts are server side optimizations: the database may not be optimized or caching is not enabled, or things like that. We often overlook another major part of our web application: the client. We o…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
This video teaches viewers how to create their own website using cPanel and Wordpress. Tutorial walks users through how to set up their own domain name from tools like Domain Registrar, Hosting Account, and Wordpress. More specifically, the order in…
This video teaches users how to migrate an existing Wordpress website to a new domain.

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

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

Join & Ask a Question