ORACLE GROUPINGº¯ÊýµÄʹÓÃ
GROUPINGº¯Êý¿ÉÒÔ½ÓÊÜÒ»ÁУ¬·µ»Ø0»òÕß1¡£Èç¹ûÁÐֵΪ¿Õ£¬ÄÇôGROUPING()·µ»Ø1£»Èç¹ûÁÐÖµ·Ç¿Õ£¬ÄÇô·µ»Ø0¡£GROUPINGÖ»ÄÜÔÚʹÓÃROLLUP»òCUBEµÄ²éѯÖÐʹÓᣵ±ÐèÒªÔÚ·µ»Ø¿ÕÖµµÄµØ·½ÏÔʾij¸öֵʱ£¬GROUPING()¾Í·Ç³£ÓÐÓá£
¹ØÓÚROLLUPºÍCUBEº¯ÊýµÄʹÓã¬Çë²Î¼ûÎÒµÄÁíһƪÎÄÕ¡£
http://blog.csdn.net/wh62592855/archive/2009/11/16/4817920.aspx
1¡¢ÔÚROLLUPÖжԵ¥ÁÐʹÓÃGROUPING()
SQL> select division_id,sum(salary)
2 from employees2
3 group by rollup(division_id)
4 order by division_id;
DIV SUM(SALARY)
--- -----------
BUS 1610000
OPE 1320000
SAL 4936000
SUP 1015000
8881000
¼ÓÉÏGROUPINGÀ´¿´¿´
SQL> select grouping(division_id),division_id,sum(salary)
2 from employees2
3 group by rollup(division_id)
4 order by division_id;
GROUPING(DIVISION_ID) DIV SUM(SALARY)
--------------------- --- -----------
0 BUS 1610000
0 OPE 1320000
0 SAL 4936000
0 SUP 1015000
1 8881000
¿ÉÒÔ¿´µ½£¬Îª¿ÕµÄµØ·½·µ»Ø1£¬·Ç¿ÕµÄµØ·½·µ»Ø0¡£
2¡¢Ê¹ÓÃCASEת»»GROUPING()µÄ·µ»ØÖµ
¿ÉÄÜÄã»á¾õµÃÇ°ÃæµÄ0ºÍ1Ì«¿ÝÔïÁË£¬´ú±í²»ÁËÈκÎÒâÒ壬˵°×Á˾ÍÊDz»¹»ÈËÐÔ»¯£¬ºÇºÇ¡£Õâ¸öʱºòÎÒÃÇ¿ÉÒÔʹÓÃCASEÀ´×ª»»ÎªÒ
Ïà¹ØÎĵµ£º
oracle±í¿Õ¼ä²Ù×÷Ïê½â
1
2
3×÷Õߣº À´Ô´£º ¸üÐÂÈÕÆÚ£º2006-01-04
5
6
7½¨Á¢±í¿Õ¼ä
8
9CREATE TABLESPACE data01
10DATAFILE '/ora ......
ÔÚÊý¾Ý¿âδÆô¶¯Ö®Ç°µÇ½´Ó¶øÆô¶¯Êý¾Ý¿âÈç¹ûûÓпÚÁîÎļþ£¬ÔÚÊý¾Ý¿âδÆô¶¯Ö®Ç°¾ÍÖ»ÄÜͨ¹ý²Ù×÷ϵͳÈÏÖ¤.ʹÓÃRman£¬ºÜ¶àʱºòÐèÒªÔÚnomount,mountµÈ״̬¶ÔÊý¾Ý¿â½øÐд¦Àí¡£ËùÒÔͨ³£ÒªÇósysdbaȨÏÞÈç¹ûÊôÓÚ±¾µØDBA×飬¿ÉÒÔͨ¹ý²Ù×÷ϵͳÈÏÖ¤µÇ½Èç¹ûÊÇÔ¶³ÌsysdbaµÇ½£¬ÐèҪͨ¹ýpasswordfileÈÏÖ¤¡£
1.remote_login_passwordfile ......
ÔÚORACLE ´óÊý¾ÝÁ¿ÏµķÖÒ³½â¾ö·½·¨¡£Ò»°ãÓýØÈ¡ID ·½·¨£¬»¹ÓÐÊÇÈý²ã ǶÌ×·½·¨
Ò»ÖÖ·ÖÒ³·½·¨
<%
int i = 1;
int numPages = 14;
String pages = request.getParameter("page");
int currentPage = 1;
cu ......
ÊÕ¼¯µÄ¼¸ÌõÔÚoracleÖÐͨ¹ýconnect by priorÀ´ÊµÏֵݹé²éѯ
Start with...Connect By×Ó¾äµÝ¹é²éѯһ°ãÓÃÓÚÒ»¸ö±íά»¤Ê÷ÐνṹµÄÓ¦Óá£
´´½¨Ê¾Àý±í£º
CREATE TABLE TBL_TEST
(
ID NUMBER,
NAME VARCHAR2(100 BYTE),
PID NUMBER ......
ROLLUP£¬ÊÇGROUP BY×Ó¾äµÄÒ»ÖÖÀ©Õ¹£¬¿ÉÒÔΪÿ¸ö·Ö×é·µ»ØÐ¡¼Æ¼Ç¼ÒÔ¼°ÎªËùÓзÖ×é·µ»Ø×ܼƼǼ¡£
CUBE£¬Ò²ÊÇGROUP BY×Ó¾äµÄÒ»ÖÖÀ©Õ¹£¬¿ÉÒÔ·µ»ØÃ¿Ò»¸öÁÐ×éºÏµÄС¼Æ¼Ç¼£¬Í¬Ê±ÔÚĩβ¼ÓÉÏ×ܼƼǼ¡£
ÔÚÎÄÕµÄ×îºó¸½ÉÏÁËÏà¹Ø±íºÍ¼Ç¼´´½¨µÄ½Å±¾¡£
1¡¢ÏòROLLUP´«µÝÒ»ÁÐ
SQL> select division_id,sum(salary)
2  ......