获取每周平均高价和低价的数据
Get Data for every weeks average of high and low prices
我有 table 命名为
FP_BASIC_BD
其结构如下
Name Null? Type
-------------- -------- ------------
FS_ID NOT NULL VARCHAR2(20)
DATE NOT NULL DATE
CURRENCY CHAR(3)
PRICE FLOAT(126)
PRICE_OPEN FLOAT(126)
PRICE_HIGH FLOAT(126)
PRICE_LOW FLOAT(126)
VOLUME FLOAT(126)
对于 FS_ID 的任何值,我想计算
weekends date
week start date
average(High of PRICE_HIGH+Low of PRICE_LOW)
所有周。
周末被视为周五 如果周五数据不可用,则尝试获取 1 或之前但之后或等于 周一 的任何一天那一周。
周开始被视为 星期一。如果星期一的数据不可用,则在上述步骤中获取 1 或提前但小于或等于周末的任何一天。
获取周末和周开始日期的任务可以在不同的查询中完成。但我想将它用作单个查询中的范围并获得所需的平均值。
首先,请不要使用 Oracle 关键字(例如 date)作为列名。
其次,您对如何计算平均值的描述含糊不清,因此我提供了几个选项。
我认为这应该可以确定您一周的开始/结束日期。
select
trunc("DATE", 'IW') as week,
min(trunc("DATE")) as week_start,
max(trunc("DATE")) as week_end,
(max(price_high) + min(price_low)) / 2 as avg_price_weekly,
avg(price_high+price_low) as avg_price_daily
from fp_basic_bd
where to_char("DATE", 'DY') not in ('SAT','SUN')
group by trunc("DATE", 'IW');
根据您的描述,我猜您在 table 中没有任何 Saturday/Sunday 日期。如果您这样做,并且您特别想将它们排除在该查询之外,请告诉我,我会更新我的答案。
编辑:已更新以排除周末 (sat/sun)。
我有 table 命名为
FP_BASIC_BD
其结构如下
Name Null? Type
-------------- -------- ------------
FS_ID NOT NULL VARCHAR2(20)
DATE NOT NULL DATE
CURRENCY CHAR(3)
PRICE FLOAT(126)
PRICE_OPEN FLOAT(126)
PRICE_HIGH FLOAT(126)
PRICE_LOW FLOAT(126)
VOLUME FLOAT(126)
对于 FS_ID 的任何值,我想计算
weekends date
week start date
average(High of PRICE_HIGH+Low of PRICE_LOW)
所有周。
周末被视为周五 如果周五数据不可用,则尝试获取 1 或之前但之后或等于 周一 的任何一天那一周。
周开始被视为 星期一。如果星期一的数据不可用,则在上述步骤中获取 1 或提前但小于或等于周末的任何一天。
获取周末和周开始日期的任务可以在不同的查询中完成。但我想将它用作单个查询中的范围并获得所需的平均值。
首先,请不要使用 Oracle 关键字(例如 date)作为列名。 其次,您对如何计算平均值的描述含糊不清,因此我提供了几个选项。
我认为这应该可以确定您一周的开始/结束日期。
select
trunc("DATE", 'IW') as week,
min(trunc("DATE")) as week_start,
max(trunc("DATE")) as week_end,
(max(price_high) + min(price_low)) / 2 as avg_price_weekly,
avg(price_high+price_low) as avg_price_daily
from fp_basic_bd
where to_char("DATE", 'DY') not in ('SAT','SUN')
group by trunc("DATE", 'IW');
根据您的描述,我猜您在 table 中没有任何 Saturday/Sunday 日期。如果您这样做,并且您特别想将它们排除在该查询之外,请告诉我,我会更新我的答案。
编辑:已更新以排除周末 (sat/sun)。