在我的选择查询中,我需要使用行数或其他任何东西来使用日期数据。
Ex:数据:2015年8月31日:100条记录 2015年8月30日:100条记录。
但是我在单个查询中只需要10个日期记录
31-Aug-2015 :10 records
30-Aug-2015 : 10 records.
答案 0 :(得分:0)
缺少相当多的细节,但听起来您需要按日期使用row_number()
分析函数分区,以便您可以为每个日期分配行号。然后,您可以轻松过滤分配的行号小于或等于10的查询。
假设你有一个像这样定义的表:
create table some_table (
id number(10) not null primary key,
some_date date not null
)
您的查询可能如下所示:
select id, some_date
from (select id,
some_date,
row_number() over (partition by trunc(some_date) order by null) as rn
from some_table
where some_date >= date '2015-08-30'
and some_date < date '2015-09-01')
where rn <= 10
有几点需要注意:
partition by some_date
,而无需trunc()
函数调用。order by null
。如果您确定需要10个特定行,则必须为此调整order by
子句。