dbTalk Databases Forums  

Dynamic date range for each row?

comp.databases.ms-sqlserver comp.databases.ms-sqlserver


Discuss Dynamic date range for each row? in the comp.databases.ms-sqlserver forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
lee.richmond
 
Posts: n/a

Default Dynamic date range for each row? - 01-29-2008 , 12:46 PM






Hi,

I'm trying to group data by date range, but each row of data could
have a different date range based on a variable.

I want to say "look at the date range the paste five orders were
placed" for each row individually. As an example, think of the rows as
keywords in a Search Marketing program. Keyword X had 5 orders placed
in the last week, Keyword Y had 5 orders placed in the last 2 weeks. I
want each keyword to display its average impressions over the course
of its respective date range.

Is this possible?

Thanks in advance!

Reply With Quote
  #2  
Old   
Roy Harvey (SQL Server MVP)
 
Posts: n/a

Default Re: Dynamic date range for each row? - 01-29-2008 , 02:08 PM






I assume you are looking for something beyond just retrieving the last
five orders - say using the data in the Orders table to control the
data being retrieved from some other table entirely.

This gets the date range for the most recent five orders by customer.

SELECT CustomerID,
MIN(OrderDate) as StartDate,
MAX(OrderDate) as EndDate
FROM Orders as A
WHERE OrderID IN
(SELECT TOP 5 B.OrderID
FROM Orders as B
WHERE A.CustomerID = B.CustomerID
ORDER BY B.OrderDate DESC)
GROUP BY CustomerID

I will leave it to you to apply that data to whatever table is
required.

Roy Harvey
Beacon Falls, CT

On Tue, 29 Jan 2008 10:46:47 -0800 (PST), "lee.richmond"
<Richmolj (AT) gmail (DOT) com> wrote:

Quote:
Hi,

I'm trying to group data by date range, but each row of data could
have a different date range based on a variable.

I want to say "look at the date range the paste five orders were
placed" for each row individually. As an example, think of the rows as
keywords in a Search Marketing program. Keyword X had 5 orders placed
in the last week, Keyword Y had 5 orders placed in the last 2 weeks. I
want each keyword to display its average impressions over the course
of its respective date range.

Is this possible?

Thanks in advance!

Reply With Quote
  #3  
Old   
jefftyzzer
 
Posts: n/a

Default Re: Dynamic date range for each row? - 01-30-2008 , 11:55 AM



On Jan 29, 10:46 am, "lee.richmond" <Richm... (AT) gmail (DOT) com> wrote:
Quote:
Hi,

I'm trying to group data by date range, but each row of data could
have a different date range based on a variable.

I want to say "look at the date range the paste five orders were
placed" for each row individually. As an example, think of the rows as
keywords in a Search Marketing program. Keyword X had 5 orders placed
in the last week, Keyword Y had 5 orders placed in the last 2 weeks. I
want each keyword to display its average impressions over the course
of its respective date range.

Is this possible?

Thanks in advance!
Lee,

If (your version of) SQL Server implements them, you may want to look
at the windowing functions, and specifically the framing clause.
Here's an example of a simple moving average:

SELECT
keyword,
avg(qty) over (order by orderdate range between 5 preceding and
current row) as n
from
orders

The important part is the "range between 5 preceding and current row"

--Jeff



Reply With Quote
  #4  
Old   
Gert-Jan Strik
 
Posts: n/a

Default Re: Dynamic date range for each row? - 01-30-2008 , 01:30 PM



jefftyzzer wrote:
Quote:
On Jan 29, 10:46 am, "lee.richmond" <Richm... (AT) gmail (DOT) com> wrote:
Hi,

I'm trying to group data by date range, but each row of data could
have a different date range based on a variable.

I want to say "look at the date range the paste five orders were
placed" for each row individually. As an example, think of the rows as
keywords in a Search Marketing program. Keyword X had 5 orders placed
in the last week, Keyword Y had 5 orders placed in the last 2 weeks. I
want each keyword to display its average impressions over the course
of its respective date range.

Is this possible?

Thanks in advance!

Lee,

If (your version of) SQL Server implements them, you may want to look
at the windowing functions, and specifically the framing clause.
Here's an example of a simple moving average:

SELECT
keyword,
avg(qty) over (order by orderdate range between 5 preceding and
current row) as n
from
orders

The important part is the "range between 5 preceding and current row"

--Jeff
Jeff,

According to SQL Server 2005's Books Online, aggregate window functions
only support partitioning by a column. IOW, AFAIK SQL Server does not
(yet?) support PRECEDING or CURRENT ROW as windowing selectors.

--
Gert-Jan


Reply With Quote
  #5  
Old   
Erland Sommarskog
 
Posts: n/a

Default Re: Dynamic date range for each row? - 01-30-2008 , 04:23 PM



Gert-Jan Strik (sorry (AT) toomuchspamalready (DOT) nl) writes:
Quote:
According to SQL Server 2005's Books Online, aggregate window functions
only support partitioning by a column. IOW, AFAIK SQL Server does not
(yet?) support PRECEDING or CURRENT ROW as windowing selectors.
Yep. There is a request on ORDER BY for aggregates on Connect:
https://connect.microsoft.com/SQLSer...dbackID=254387

There is also one for RANGE and ROWS
https://connect.microsoft.com/SQLSer...dbackID=254392

There are also a whole more requests for enhancements to the OVER clause,
most of them taken from the ANSI standard. You view a list on:
https://connect.microsoft.com/SQLSer...ent+request%22

Would this come in SQL 2008 (it does not seem so), SQL 2008 would be
really hot.


--
Erland Sommarskog, SQL Server MVP, esquel (AT) sommarskog (DOT) se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/pro...ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinf...ons/books.mspx


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.