Oracle返回指定列首行或末行值之FIRST_VALUE与LAST_VALUE
2012-11-27 11:25
225 查看
FIRST_VALUE与LAST_VALUE功能:返回指定列首行值和末行值
在语法上有9i和10g和区别:
9i:
我的应用:
要完成的功能:汇总统计后,返回最后一个日期。
SQL:关键在于FIRST_VALUE() OVER()的应用。
实现:先进行B_SUM,S_SUM_BS_SUM_NET_BUY按SEC_CODE汇总,再记入2012-11-20里
1.sql语句中,注释如下代码结果
2. 取消对1中的注释结果:
3.
在语法上有9i和10g和区别:
9i:
FIRST_VALUE ( expr ) OVER ( analytic_clause )10g:
FIRST_VALUE (expr [ IGNORE NULLS ]) OVER (analytic_clause)如果排序组中的第一个数据为空,oracle会返回空,除非指定IGNORE NULLS。
我的应用:
要完成的功能:汇总统计后,返回最后一个日期。
SQL:关键在于FIRST_VALUE() OVER()的应用。
select count(sec_code) sum_cn, sec_code, sec_sname, nvl(sum(b_sum),0) b_sum, nvl(sum(s_sum),0) s_sum, nvl(sum(bs_sum),0) bs_sum, nvl(sum(net_buy),0) net_buy, tradedate from ( select distinct t.sec_code, t.sec_sname,FIRST_VALUE(tradedate) OVER (PARTITION BY sec_code ORDER BY tradedate desc) tradedate, nvl(sum(t.buy_value) over(partition by sec_code,tradedate),0) b_sum, nvl(sum(t.sale_value) over(partition by sec_code,tradedate),0) s_sum, (nvl(sum(t.buy_value) over(partition by sec_code,tradedate),0)+nvl(sum(t.sale_value) over(partition by sec_code,tradedate),0)) bs_sum, (nvl(sum(t.buy_value) over(partition by sec_code,tradedate),0)-nvl(sum(t.sale_value) over(partition by sec_code,tradedate),0)) net_buy from mv_stk_trans_info t where to_char(t.tradedate,'yyyy-mm-dd')<=to_char(sysdate,'yyyy-mm-dd') and to_char(t.tradedate,'yyyy-mm-dd')>=to_char(sysdate-30,'yyyy-mm-dd') and sec_code='600638' ) co group by sec_code,sec_sname,tradedate order by sum_cn desc
实现:先进行B_SUM,S_SUM_BS_SUM_NET_BUY按SEC_CODE汇总,再记入2012-11-20里
1.sql语句中,注释如下代码结果
FIRST_VALUE(tradedate) OVER (PARTITION BY sec_code ORDER BY tradedate desc) tradedate
2. 取消对1中的注释结果:
3.
相关文章推荐
- 【Oracle】分析函数first、last、first_value、last_value
- Oracle SQL 分析函数 first、last、first_value、last_value、nth_value
- Oracle分析函数-first_value()和last_value()
- Oracle分析函数总结(2) - 排序 - rank,dense_rank,row_number,first,first_value,last,last_value,lag,lead
- Oracle分析函数系列之first_value/last_value:在记录集中查找第一条记录和最后一条记录
- oracle分析函数系列之first_value/last_value:在记录集中查找第一条记录和最后一条记录
- Oracle 分析函数 Last_value和First_Value
- Oracle分析函数(2) keep(dense_rank first/last) FIRST_VALUE() LAST_VALUE()
- oracle 分析函数 FIRST_VALUE、LAST_VALUE
- Oracle分析函数之first_value和last_value 分析函数详解
- Oracle分析函数之FIRST_VALUE和LAST_VALUE
- Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST…
- 【转】Oracle分析函数:First_Value
- SQL Server ->> FIRST_VALUE和LAST_VALUE函数
- Oracle:函数Last,First的用法
- ORACLE分析函数(4)---FIRST/LAST排名查询
- SQL SERVER中FIRST_VALUE和LAST_VALUE
- Oracle应用专题之:分析函数3(Top/Bottom N、First/Last、NTile)
- LoadLibrary(Ex)失败,GetLastError返回127 (找不到指定的程序)
- Oracle分析函数四——函数RANK,DENSE_RANK,FIRST,LAST