ORACLE OLAP º¯Êý
¡¡ ×î½üÕâ¸ö¶«¶«ÓõÃÌØ±ð¶à£¬×ܽáÁËһϠ¡£
¡¡¡¡
Óï·¨: FUNCTION_NAME(,,...)
¡¡¡¡ OVER()
¡¡¡¡OLAPº¯ÊýÓï·¨Ëĸö²¿·Ö:
¡¡¡¡1¡¢function±¾Éí ÓÃÓÚ¶Ô´°¿ÚÖеÄÊý¾Ý½øÐвÙ×÷£»
¡¡¡¡2¡¢partitioning clause ÓÃÓÚ½«½á¹û¼¯·ÖÇø£»
¡¡¡¡3¡¢order by clause ÓÃÓÚ¶Ô·ÖÇøÖеÄÊý¾Ý½øÐÐÅÅÐò£»
¡¡¡¡4¡¢windowing clause ÓÃÓÚ¶¨ÒåfunctionÔÚÆäÉϲÙ×÷µÄÐеļ¯ºÏ£¬¼´functionËùÓ°ÏìµÄ·¶Î§¡£
¡¡¡¡
Ò»¡¢order by¶Ô´°¿ÚµÄÓ°Ïì
¡¡¡¡²»º¬order byµÄ£º
¡¡¡¡SQL> select deptno,sal,sum(sal) over() from emp;
¡¡¡¡²»º¬order byʱ£¬Ä¬ÈϵĴ°¿ÚÊÇ´Ó½á¹û¼¯µÄµÚÒ»ÐÐÖ±µ½Ä©Î²¡£
¡¡¡¡
º¬order byµÄ£º
¡¡¡¡SQL> select deptno,sal, sum(sal) over(order by deptno) as sumsal from emp;
¡¡¡¡µ±º¬ÓÐorder byʱ£¬Ä¬ÈϵĴ°¿ÚÊÇ´ÓµÚÒ»ÐÐÖ±µ½µ±Ç°·Ö×éµÄ×îºóÒ»ÐС£
¡¡¡¡
¶þ¡¢ÓÃÓÚÅÅÁеĺ¯Êý
¡¡¡¡SQL> select empno, deptno, sal,
rank() over (partition by deptno order by sal desc nulls last) as rank,
¡¡¡¡ dense_rank() over (partition by deptno order by sal desc nulls last) as dense_rank,
¡¡¡¡ row_number() over(partition by deptno order by sal desc nulls last) as row_number
¡¡¡¡ from emp;
¡¡¡¡
Èý¡¢ÓÃÓںϼƵĺ¯Êý
¡¡¡¡SQL> select deptno,sal,
¡¡¡¡ sum(sal) over (partition by deptno) as sumsal,
¡¡¡¡ avg(sal) over (partition by deptno) as avgsal,
¡¡¡¡ count(*) over (partition by deptno) as count,
¡¡¡¡ max(sal) over (partition by deptno) as maxsal
¡¡¡¡ from emp;
¡¡¡¡
ËÄ¡¢¿ª´°Óï¾ä
¡¡
¡¡1¡¢rows´°¿Ú: "rows 5 preceding" ÊÊÓÃÓÚÈκÎÀàÐͶøÇÒ¿ÉÒÔorder by¶àÁС£
¡¡¡¡ SQL> select deptno,ename,sal,
¡¡¡¡ sum(sal) over (order by deptno rows 2 preceding) sumsal
¡¡¡¡ from emp;
¡¡¡¡rows 2 preceding:½«µ±Ç°ÐкÍËüÇ°ÃæµÄÁ½Ðл®ÎªÒ»¸ö´°¿Ú£¬Òò´Ësumº¯Êý¾
Ïà¹ØÎĵµ£º
²»Óð²×°Oracle ClientÈçºÎʹÓÃPLSQL Developer
1. ÏÂÔØoracleµÄ¿Í»§¶Ë³ÌÐò°ü£¨30M£©
Ö»ÐèÒªÔÚOracleÏÂÔØÒ»¸ö½ÐInstant Client PackageµÄÈí¼þ¾Í¿ÉÒÔÁË£¬Õâ¸öÈí¼þ²»ÐèÒª°²×°£¬Ö»Òª½âѹ¾Í¿ÉÒÔÓÃÁË£¬ºÜ·½±ã£¬¾ÍËã֨װÁËϵͳ»¹ÊÇ¿ÉÒÔÓõġ£
ÏÂÔØµ ......
CREATE OR REPLACE PROCEDURE kevin_proc(x varchar) IS
a VARCHAR(20);
b VARCHAR(20);
CURSOR mycur(rn NUMBER) IS SELECT * from t_kevin_test WHERE ROWNUM<rn;
BEGIN
OPEN mycur(10);
LOOP FETCH mycur INTO a,b;
EXIT WHEN mycur%NOTFOUND;
Dbms_Output.put_line('a: '||a);
Dbms_Output.put_line('b: '| ......
ÒòΪ¹«Ë¾µÄÕÆÉϳÇÊÐϵͳÔÚ¶à¸öµØÊÆÍ¬Ê±ÉÏÏߣ¬¶øÎªÁËÈÃÿ¸ö³ÇÊеÄ3G¿ìѶ¾ßÓеØÊÆÌØÉ«ÐÔ£¬Ã¿¸öµØÊÆÓÐ×Ô¼ºµ¥¶ÀµÄÊý¾Ý¿âϵͳ£¬¶øÃ¿¸öµØÊƵĿìѶÓÖһЩ¹²Í¬µÄ£¬Æ©ÈçͻȻ³öÁËÒ»Ìõ¹ú¼ÊÐÂÎÅ£¬ÄÇôÊDz»ÊÇÿ¸öµØÊƵĺǫ́±à¼¶¼ÒªÂ¼ÈëÒ»±é£¬ÕâÑùÎÞÒÉÊÇ×öÁËÐí¶àÎÞÓù¦£¬ËùÒÔ¹«Ë¾¿¼ÂǼÜÉèÒ»¸ö×ÜÕ¾£¬×ÜÕ¾ÉÏÓÐרÃŵÄÈ˸ºÔð£¬Ã¿Ì츺Ôð¼ÈëÒ» ......
select * from TTable1 for update Ëø¶¨±íµÄËùÓÐÐУ¬Ö»ÄܶÁ²»ÄÜд
2 select * from TTable1 where pkid = 1 for update Ö»Ëø¶¨pkid=1µÄÐÐ
3 select * from Table1 a join Table2 b on a.pkid=b.pkid for update Ëø¶¨Á½¸ö±íµÄËùÓмǼ
4 select * from Table1 a join Table2 b on a.pki ......