【发布时间】:2011-12-29 06:25:20
【问题描述】:
请帮助我解决以下问题。 假设我有一个表名为 Data 3 行:Date1、Date2 和访问窗口。我需要计算访问窗口值。它应该是日期1的第(n+1)行和日期2的第n行的差。例如:Date1 的第 2 行值与 date2 值的第 1 行值之差除以 7。请帮助。
Table: Data
------------
Date1 Date2 VW
13-DEC-2011 15-DEC-2011 ?
18-DEC-2011 16-DEC-2011 ?
21-DEC-2011 24-DEC-2011 ?
谢谢
【问题讨论】:
-
您使用什么 DBMS?你的表中有某种主键吗? Date1 和 Date2 的数据类型是什么?你怎么知道第一行是哪一行?是 Date1 中值最低的那一行吗?
-
我们使用Oracle 11g,数据类型为日期。它可以有主键,并且在 date1 中也可以有较小的日期。我只需要一个示例查询来检索访问窗口的值。这只是一个尚未实现的难题。
-
你应该看看
lead函数。它用于访问下一行的数据,因此您可以使用该值并计算当前行和下一行之间的差异。 -
我们需要知道订购标准是什么。 Oracle 不保证行的顺序,所以需要指定一个排序标准。是 Date1 行吗?
-
是的,它应该从 Date1 行计算,它应该显示所有 3 行的访问窗口值。