Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

ROLLUPºÍCUBEÓï¾ä¡£ ORACLE·Ö×éͳ¼Æ

ROLLUPºÍCUBEÓï¾ä¡£
OracleµÄGROUP
BYÓï¾ä³ýÁË×î»ù±¾µÄÓï·¨Í⣬»¹Ö§³ÖROLLUPºÍCUBEÓï¾ä¡£Èç¹ûÊÇROLLUP(A, B, C)µÄ»°£¬Ê×ÏÈ»á¶Ô(A¡¢B¡¢C)½øÐÐGROUP
BY£¬È»ºó¶Ô(A¡¢B)½øÐÐGROUP BY£¬È»ºóÊÇ(A)½øÐÐGROUP BY£¬×îºó¶ÔÈ«±í½øÐÐGROUP BY²Ù×÷¡£Èç¹ûÊÇGROUP BY
CUBE(A, B, C)£¬ÔòÊ×ÏÈ»á¶Ô(A¡¢B¡¢C)½øÐÐGROUP
BY£¬È»ºóÒÀ´ÎÊÇ(A¡¢B)£¬(A¡¢C)£¬(A)£¬(B¡¢C)£¬(B)£¬(C)£¬×îºó¶ÔÈ«±í½øÐÐGROUP BY²Ù×÷¡£
grouping_id()¿ÉÒÔÃÀ»¯Ð§¹û£º
OracleµÄGROUP BYÓï¾ä³ýÁË×î»ù±¾µÄÓï·¨Í⣬»¹Ö§³ÖROLLUPºÍCUBEÓï¾ä¡£
³ý±¾ÎÄÄÚÈÝÍ⣬Ä㻹¿É²Î¿¼£º
·ÖÎöº¯Êý²Î¿¼Êֲ᣺
http://xsb.itpub.net/post/419/33028
·ÖÎöº¯ÊýʹÓÃÀý×Ó½éÉÜ£º
http://xsb.itpub.net/post/419/44634
SQL> create table t as select * from dba_indexes;
±íÒÑ´´½¨¡£
SQL> select index_type, status, count(*) from t group by index_type, status;
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
LOB VALID 51
NORMAL N/A 25
NORMAL VALID 479
CLUSTER VALID 11
ÏÂÃæÀ´¿´¿´ROLLUPºÍCUBEÓï¾äµÄÖ´Ðнá¹û¡£
SQL> select index_type, status, count(*) from t group by rollup(index_type, status);
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
LOB VALID 51
LOB 51
NORMAL N/A 25
NORMAL VALID 479
NORMAL 504
CLUSTER VALID 11
CLUSTER 11
566
ÒÑÑ¡Ôñ8ÐС£
SQL> select index_type, status, count(*) from t group by cube(index_type, status);
INDEX_TYPE STATUS COUNT(*)
--------------------------- -------- ----------
566
N/A 25
VALID 541
LOB 51
LOB VALID 51
NORMAL 504
NORMAL N/A 25
NORMAL VALID 479
CLUSTER 11
CLUSTER VALID 11
ÒÑÑ¡Ôñ10ÐС£
²éѯ½á¹û²»ÊǺÜһĿÁËÈ»£¬ÏÂÃæͨ¹ýOracleÌṩµÄº¯ÊýGROUPINGÀ´ÕûÀíһϲéѯ½á¹û¡£
SQL> select grouping(index_type) g_ind, grouping(status) g_st, index_type, status, count(*)
2 from t group by rollup(index_type, status) order by 1, 2;
G_IND G_ST INDEX_TYPE STATUS COUNT(*)
---------- ---------- --------------------------- -------- ----------
0 0 LOB VALID 51
0 0 NORMAL N/A 25
0 0 NORMAL VALID 479
0 0 CLUSTER VALID 11
0 1 LOB 51
0 1 NORMAL 504
0 1 CLUSTER 11
1 1 566
ÒÑÑ¡


Ïà¹ØÎĵµ£º

ºìÆìDC Server 5.0ÉÏ°²×°Oracle 10g R2

  Ç°ÃæдÁ˶à·ÝºìÆìDC 4.1ºÍ5.0ÉÏ°²×°Oracle 9i/10gµÄÎĵµ£¬µ«Ò»Ö±Ã»ÓÐÕûÀíDC 5.0ÉÏ°²×°Oracle 10gµ¥»ú·þÎñÆ÷µÄ×ÊÁÏ£¬Ô­ÒòÊǸùý³Ì·Ç³£¼òµ¥¡£µ«×î½üÏîÄ¿ÖУ¬»¹ÊÇÓÐÓû§Óöµ½Ð©ÎÊÌ⣬½ñÌì¾Í°ÑһЩÐèҪעÒâµÄµØ·½ÕûÀíһϣ¬ÏêϸµÄ¹ý³Ì¾Í²»ÃèÊöÁË¡£
Ò»¡¢ÏµÍ³»·¾³
²Ù×÷ϵͳ£ººìÆì DC 5.0 for x86 »ò x86_64
Ó²¼þ»·¾ ......

oracle·Ö×麯ÊýÖ®ROLLUP

 
1.³õʼ»¯ÊµÑ黵¾³
1£©´´½¨²âÊÔ±ígroup_test
sec@ora10g> create table group_test (group_id int, job varchar2(10), name varchar2(10), salary int);
¡¡
Table created.
¡¡
2£©³õʼ»¯Êý¾Ý
insert into group_test values (10,'Coding',    'Bruce',1000);
insert into group_test val ......

oracle¸´Ï°£¨Èý£© Ö®OracleÊý¾Ý×ÖµäºÍ¿ØÖÆÎļþ

      ½ñÌ츴ϰOracleµÄÊý¾Ý×ÖµäºÍ¿ØÖÆÎļþ¡£
Ò»¡¢Êý¾Ý×Öµä
      Êý¾Ý×ÖµäÊÇÓÉOracle·þÎñÆ÷´´½¨ºÍά»¤µÄÒ»×éÖ»¶ÁµÄϵͳ±í£¬Êý¾Ý×Öµä·ÖΪÁ½´óÀࣺһÀàΪ»ù±í£¬Ò»ÀàΪÊý¾Ý×ÖµäÊÓͼ¡£ÄÇôÊý¾Ý×ÖµäÖÐÓÖ´æÓÐÄÄЩÐÅÏ¢ÄØ£¿
1¡¢Êý¾Ý¿âµÄÂß¼­½á¹¹ºÍÎïÀí½á¹¹
2¡¢ËùÓÐÊý¾Ý¿â¶Ô ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ