Oracle·ÖÎöº¯ÊýÓ¦ÓÃ(Analytic Functions)
Oracle ·ÖÎöº¯ÊýʹÓýéÉÜ
·ÖÎöº¯ÊýÊÇoracle816ÒýÈëµÄÒ»¸öȫеĸÅÄî,ΪÎÒÃÇ·ÖÎöÊý¾ÝÌṩÁËÒ»ÖÖ¼òµ¥¸ßЧµÄ´¦Àí·½Ê½.ÔÚ·ÖÎöº¯Êý³öÏÖÒÔÇ°,ÎÒÃDZØÐëʹÓÃ×ÔÁª²éѯ,×Ó²éѯ»òÕßÄÚÁªÊÓͼ,ÉõÖÁ¸´ÔӵĴ洢¹ý³ÌʵÏÖµÄÓï¾ä,ÏÖÔÚÖ»ÒªÒ»Ìõ¼òµ¥µÄsqlÓï¾ä¾Í¿ÉÒÔʵÏÖÁË,¶øÇÒÔÚÖ´ÐÐЧÂÊ·½ÃæÒ²ÓÐÏ൱´óµÄÌá¸ß.ÏÂÃæÎÒ½«Õë¶Ô·ÖÎöº¯Êý×öһЩ¾ßÌåµÄ˵Ã÷.
½ñÌìÎÒÖ÷Òª¸ø´ó¼Ò½éÉÜÒ»ÏÂÒÔϼ¸¸öº¯ÊýµÄʹÓ÷½·¨
1. ×Ô¶¯»ã×ܺ¯Êýrollup,cube,
2. rank º¯Êý, rank,dense_rank,row_number
3. lag,leadº¯Êý
4. sum,avg,µÄÒƶ¯Ôö¼Ó,Òƶ¯Æ½¾ùÊý
5. ratio_to_report±¨±í´¦Àíº¯Êý
6. first,lastÈ¡»ùÊýµÄ·ÖÎöº¯Êý
»ù´¡Êý¾Ý
Code:
[Copy to clipboard]
06:34:23 SQL> select * from t;
BILL_MONTH AREA_CODE NET_TYPE LOCAL_FARE
--------------- ---------- ---------- --------------
200405 5761 G 7393344.04
200405 5761 J 5667089.85
200405 5762 G 6315075.96
200405 5762 J 6328716.15
200405 5763 G 8861742.59
200405 5763 J 7788036.32
200405 5764 G &
Ïà¹ØÎĵµ£º
ORACLE 10GµÄ¼¯ºÏAPI
¼¯ºÏAPI·½·¨×îÔçÊÇÔÚORACLE 8IÖÐÒýÈëµÄ¡£¼¯ºÏAPIÌṩÁ˼ò»¯·ÃÎʼ¯ºÏµÄ·½·¨¡£ÔÚORACLE 10GÒÔÇ°£¬ÕâЩ·½·¨È·Êµ¼ò»¯Á˶Լ¯ºÏµÄ·ÃÎÊ¡£µ«ÊÇ£¬²¢²»ÊÇ·ÇÒªÇóÕÆÎÕÕâЩ·½·¨²»¿É¡£´ÓORACLE 9IµÄINDEX-BY±íµ½ORACLE 10GµÄÁªºÏÊý×éµÄת»»£¬Ê¹ËüÃdzÉΪ±ØÐëÕÆÎյķ½·¨¡£
ÏÂÃæÊÇÎÒ´ÓÊéÉÏժ¼ÏµÄһР......
µ¼¶Á£º
¡¡¡¡2009Äê9ÔÂOracle¹«Ë¾·¢²¼ÁËÆÚ´ýÒѾõÄOracle 11g R2£¬±¾ÏµÁÐÎÄÕ½«¸ø¶ÁÕßÒ»Ò»½Ò¿ªÐ°汾ÖеÄÐÂÌØÐÔ£¬²¢»á½éÉÜÆóÒµÈçºÎÀûÓÃÕâЩÐÂÌØÐÔ½«ÏÖÓеÄOracle 9i£¬10g£¬11g R1Éý¼¶µ½Oracle 11g R2.
¡¡¡¡¾ÀúÁËÄÑÒÔÈÌÊܵij¤Ê±¼äµÈ´ý£¬Oracle¹«Ë¾Í»È»ÔÚ9ÔÂ1·¢²¼ÁËOracle 11g R2£¬ÎÒ²»µÃ²»³ÐÈÏOracleµÄ±£Ãܹ¤×÷×öµÃ ......
ÒÔÉÏΪתÔØ,¶àÊý²¢Î´ÑéÖ¤.
ÆäÖÐ,select trunc(sysdate,'dd') from dual,µÃµ½µÄÊÇ: 2009-3-23 ÉÏÎç12:00:00 ,ÓëÏÂÎIJ¢²»Ò»Ñù!
oracle trunc()º¯ÊýµÄÓ÷¨
1.TRUNC(for dates)
TRUNCº¯ÊýΪָ¶¨ÔªËضø½ØÈ¥µÄÈÕÆÚÖµ¡£
Æä¾ßÌåµÄÓï·¨¸ñʽÈçÏ£º
TRUNC£¨date[,fmt]£©
ÆäÖУº
date Ò»¸öÈÕÆÚÖµ
fmt ÈÕÆÚ¸ñʽ£¬¸ÃÈÕÆÚ½« ......
--»ñÈ¡Á½Ê±¼äµÄÏà²îºÀÃëÊý
select ceil((To_date('2008-05-02 00:00:00' , 'yyyy-mm-dd hh24-mi-ss') - To_date('2008-04-30 23:59:59' , 'yyyy-mm-dd hh24-mi-ss')) * 24 * 60 * 60 * 1000) Ïà²îºÀÃëÊý from DUAL;
/*
Ïà²îºÀÃëÊý
----------
86401000
1 row selected
*/
--»ñÈ¡Á½Ê±¼äµÄÏà²îÃëÊý
select ce ......