°úÁ¤ ¸ñÇ¥
º» °úÁ¤Àº
ÇÔ¼ö¿¡ ´ëÇؼ ´õ ¹è¿ó´Ï´Ù. ÇàÀÇ ±×·ì¿¡ ´ëÇؼ Æò±Õ°ú °°Àº Åë°è Á¤º¸¸¦ ¾ò´Âµ¥ ÃÊÁ¡À» µÓ´Ï´Ù. ÇÑ Å×À̺íÀÇ ÇàµéÀ» ´õ ÀûÀº ´ÜÀ§ÀÇ ÁýÇÕÀ¸·Î
±×·ìÈ ½ÃÅ°´Â ¹æ¹ý°ú ÇàÀÇ ±×·ì¿¡ ´ëÇؼ Á¶°ÇÀ» ¸í½ÃÇÏ´Â ¹æ¹ýÀ» ÅäÀÇÇÕ´Ï´Ù.
±×·ì ÇÔ¼ö
´ÜÀÏ Çà
ÇÔ¼ö¿Í´Â ´Þ¸® ±×·ì ÇÔ¼ö´Â ±×·ì ´ç ÇϳªÀÇ °á°ú°¡ ÁÖ¾îÁöµµ·Ï ÇàÀÇ ÁýÇÕ¿¡ ´ëÇØ ¿¬»êÇÕ´Ï´Ù. ÀÌ·¯ÇÑ ÁýÇÕÀº Àüü Å×À̺íÀ̰ųª ƯÁ¤ ±×·ìÀÏ ¼ö
ÀÖ½À´Ï´Ù.
±×·ì ÇÔ¼ö (°è¼Ó)
°¢°¢ÀÇ
ÇÔ¼ö´Â Àμö(argument)¸¦ ¹Þ½À´Ï´Ù. ´ÙÀ½ÀÇ
Å×À̺íÀº ±¸¹®Çü½Ä¿¡¼ »ç¿ëÇÒ ¼ö ÀÖ´Â ¿É¼ÇÀ» º¸¿©ÁÝ´Ï´Ù.
ÇÔ ¼ö |
¼³ ¸í |
AVG([DISTINCT|ALL]n) |
null °ªÀ» ¹«½ÃÇÑ n ÀÇ Æò±Õ °ª |
COUNT({*|[DISTINCT|ALL]expr}) |
ÇàÀÇ ¼ö, exprÀº null °ªÀ» Á¦¿ÜÇÏ°í °è»êÇÕ´Ï´Ù. *¸¦ »ç¿ëÇÏ¿© Áߺ¹µÇ°Å³ª null ÀÎ ÇàµéÀ»
Æ÷ÇÔÇÏ¿© ¸ðµç ÇàÀ» °è»êÇÕ´Ï´Ù. |
MAX([DISTINCT|ALL]expr) |
Null °ªÀ» ¹«½ÃÇÑ expr ÀÇ ÃÖ´ë °ª |
MIN([DISTINCT|ALL]expr) |
Null °ªÀ» ¹«½ÃÇÑ expr ÀÇ ÃÖ¼Ò °ª |
STDDEV([DISTINCT|ALL]x) |
Null °ªÀ» ¹«½ÃÇÑ n ÀÇ Ç¥ÁØÆíÂ÷ |
SUM([DISTINCT|ALL]n) |
Null °ªÀ» ¹«½ÃÇÑ n ÀÇ ÇÕ°è |
VARIANCE([DISTINCT|ALL]x) |
Null °ªÀ» ¹«½ÃÇÑ n ÀÇ ºÐ»ê |
±×·ì ÇÔ¼ö
¼ýÀÚ µ¥ÀÌÅ͸¦
ÀúÀåÇÒ ¼ö ÀÖ´Â ¿¿¡ ´ëÇؼ AVG, SUM, MIN ±×¸®°í MAX ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹´Â ¸ðµç ÆǸſø¿¡ ´ëÇؼ ±Þ¿©ÀÇ Æò±Õ,
ÃÖ°í¾×, ÃÖÀú¾× ±×¸®°í Çհ踦 µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
±×·ì ÇÔ¼ö (°è¼Ó)
¸ðµç µ¥ÀÌÅÍÇü¿¡ ´ëÇؼ MAX¿Í MIN ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö
ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹´Â °¡Àå ¸ÕÀú ÀÔ»çÇÑ Á¾¾÷¿ø°ú °¡Àå ³ªÁß¿¡ ÀÔ»çÇÑ Á¾¾÷¿øÀ» µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
¾Æ·¡ÀÇ ¿¹´Â ¸ðµç Á¾¾÷¿ø¿¡ ´ëÇؼ
¾ËÆĺª¼øÀ¸·Î Á¦ÀÏ ºü¸¥ Á¾¾÷¿øÀÇ À̸§°ú Á¦ÀÏ ´ÊÀº Á¾¾÷¿øÀ» µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
SQL> SELECT MIN(ename),
MAX(ename) |
MIN(ENAME) MAX(ENAME) |
ÁÖ: AVG, SUM, VARIANCE ±×¸®°í STDDEV ÇÔ¼ö´Â ¼ýÀÚ µ¥ÀÌÅÍÇü¿¡¼¸¸ »ç¿ëµÉ ¼ö ÀÖ½À´Ï´Ù.
COUNT ÇÔ¼ö
COUNT
ÇÔ¼ö´Â µÎ °¡Áö Çü½ÄÀÌ ÀÖ½À´Ï´Ù:
COUNT(*) ´Â Áߺ¹µÇ´Â Çà°ú null °ªÀ» Æ÷ÇÔÇÏ´Â ÇàÀ» Æ÷ÇÔÇÏ¿© Å×À̺í ÇàÀÇ ¼ö¸¦
¸®ÅÏÇÕ´Ï´Ù.
¹Ý´ë·Î, COUNT(expr) ´Â expr ¿¡ ÀÇÇØ ÀÎ½ÄµÈ ¿¿¡¼ null ÀÌ ¾Æ´Ñ ÇàÀÇ ¼ö¸¦ ¸®ÅÏÇÕ´Ï´Ù.
À§ÀÇ ¿¹´Â
ºÎ¼ 30ÀÇ Á¾¾÷¿ø ¼ö¸¦ µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
COUNT ÇÔ¼ö (°è¼Ó)
À§ÀÇ ¿¹´Â º¸³Ê½º¸¦ ¹Þ´Â ºÎ¼ 30ÀÇ Á¾¾÷¿ø ¼ö¸¦
µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù. ºÎ¼ 30ÀÇ µÎ ¸íÀÇ Á¾¾÷¿øÀÌ º¸³Ê½º¸¦ ¹ÞÀ» ¼ö ¾ø°í COMM ¿¿¡ null °ªÀ» Æ÷ÇÔÇϹǷΠÇàÀÇ Àüü ¼ö°¡ 4°¡ µÇ¾ú´Ù´Â
°ÍÀ» ÁÖ¸ñÇϽʽÿÀ.
¿¹
EMP Å×À̺íÀÇ ºÎ¼ ¼ö¸¦ µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
SQL>
SELECT COUNT(deptno) |
COUNT(DEPTNO) |
EMP Å×À̺íÀÇ Áߺ¹µÇÁö ¾Ê´Â ºÎ¼ ¼ö¸¦ µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
SQL> SELECT COUNT(DISTINCT
(deptno)) |
COUNT(DISTINCT(DEPTNO)) |
±×·ì ÇÔ¼ö¿Í Null °ª
COUNT (*) ¸¦ Á¦¿ÜÇÑ ¸ðµç ±×·ì ÇÔ¼ö´Â ¿¿¡ ÀÖ´Â null °ªÀ» ¹«½ÃÇÕ´Ï´Ù. À§ÀÇ ¿¹¿¡¼ Æò±ÕÀº Å×À̺íÀÇ COMM
¿¿¡ ÀúÀåµÇ¾î Àִ Ÿ´çÇÑ °ªÀÇ Çà¿¡ ´ëÇؼ¸¸ °è»êµË´Ï´Ù. Æò±ÕÀº ¸ðµç Á¾¾÷¿ø¿¡°Ô Áö±ÞµÇ´Â º¸³Ê½º¸¦ º¸³Ê½º¸¦ ¹Þ´Â Á¾¾÷¿øÀÇ ¼ö(4)·Î ³ª´©¾î
°è»êÇÕ´Ï´Ù.
±×·ì ÇÔ¼ö¿Í Null °ª (°è¼Ó)
NVL ÇÔ¼ö´Â ±×·ì ÇÔ¼ö°¡ null °ªÀ» Æ÷ÇÔÇÏ´Â °ÍÀ» °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù. À§ÀÇ ¿¹¿¡¼ Æò±ÕÀº Å×À̺íÀÇ COMM ¿¿¡ ÀúÀåµÈ
°ªÀÌ null ÀÎÁö¿¡ »ó°ü ¾øÀÌ ¸ðµç ÇàÀ» °è»êÇÕ´Ï´Ù. Æò±ÕÀº ¸ðµç Á¾¾÷¿ø¿¡°Ô Áö±ÞµÇ´Â º¸³Ê½º¸¦ Àüü Á¾¾÷¿øÀÇ ¼ö(14)·Î ³ª´©¾î
°è»êµË´Ï´Ù.
µ¥ÀÌÅÍ ±×·ì
Áö±Ý±îÁö ¸ðµç
±×·ì ÇÔ¼ö´Â Å×À̺íÀ» ÇϳªÀÇ Å« ±×·ìÀ¸·Î ´Ù·ç¾ú½À´Ï´Ù. ¿©±â¼´Â Å×À̺íÀÇ µ¥ÀÌÅ͸¦ º¸´Ù ÀÛÀº ±×·ìÀ¸·Î ³ª´©´Â °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ°ÍÀº GROUP
BY ÀýÀ» »ç¿ëÇÏ¿© ¼öÇàÇÒ ¼ö ÀÖ½À´Ï´Ù.
GROUP BY Àý
Å×À̺íÀÇ ÇàÀ» ±×·ìÀ¸·Î ³ª´©±â À§Çؼ GROUP BY
ÀýÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·± ´ÙÀ½¿¡ °¢°¢ÀÇ ±×·ì¿¡ ´ëÇؼ Åë°èÁ¤º¸¸¦ ¸®ÅÏÇϱâ À§Çؼ ±×·ì ÇÔ¼ö¸¦ »ç¿ëÇÒ ¼ö
ÀÖ½À´Ï´Ù.
±¸¹®Çü½Ä¿¡¼:
group_by_expression ÇàÀ» ±×·ìÇÎ Çϱâ À§ÇÑ ±âÁØÀÌ µÉ ¿
°ªÀ» ¸í½ÃÇÕ´Ï´Ù.
Áöħ
GROUP BY Àý (°è¼Ó)
GROUP BY ÀýÀ» »ç¿ëÇÒ ¶§, ±×·ì ÇÔ¼ö¿¡ Æ÷ÇÔµÇÁö ¾Ê´Â SELECT ÀýÀÇ ¸ðµç ¿µéÀº GROUP BY Àý¿¡ Æ÷ÇԵǵµ·Ï
ÇÕ´Ï´Ù. À§ÀÇ ¿¹´Â °¢°¢ÀÇ Á¾¾÷¿ø¿¡ ´ëÇؼ ºÎ¼ ¹øÈ£¿Í Æò±Õ ±Þ¿©¸¦ µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù. ´ÙÀ½Àº GROUP BY ÀýÀ» Æ÷ÇÔÇÏ´Â À§ÀÇ SELECT
¹®ÀåÀ» °è»êÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù.
GROUP BY Àý (°è¼Ó)
|
±×·ì³»ÀÇ ±×·ì
¶§¶§·Î
±×·ì³»ÀÇ ±×·ì¿¡ ´ëÇÑ °á°ú¸¦ ¾Ë¾Æ¾ß ÇÒ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù. À§ÀÇ ¿¹´Â °¢ ºÎ¼³»ÀÇ ¾÷¹«º°·Î ±Þ¿© Çհ踦 µð½ºÇ÷¹ÀÌ ÇÏ´Â ¸®Æ÷Æ®¸¦ º¸¿©
ÁÝ´Ï´Ù.
EMP Å×À̺íÀº ¸ÕÀú ºÎ¼¹øÈ£·Î ±×·ìÈÇÑ ´ÙÀ½¿¡ ¾÷¹«·Î ±×·ìÈÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ºÎ¼ 20¿¡ ÀÖ´Â µÎ °³ÀÇ ClerkÀº ÇÔ²²
±×·ìÈ µÇ¾ú°í, ´ÜÀÏ °á°ú(±Þ¿© ÇÕ°è)´Â ±×·ì³»ÀÇ ¸ðµç ÆǸſø¿¡ ´ëÇؼ »êÃâµÇ¾ú½À´Ï´Ù.
±×·ì³»ÀÇ ±×·ì (°è¼Ó)
GROUP BY Àý¿¡ Çϳª ÀÌ»óÀÇ ¿À» »ç¿ëÇÏ¿© ±×·ì°ú ¼ºê ±×·ì¿¡ ´ëÇÑ Åë°è °á°ú¸¦ ¸®ÅÏÇÒ ¼ö ÀÖ½À´Ï´Ù. GROUP BY
Àý¿¡ ÀÖ´Â ¿ÀÇ ¼ø¼¿¡ ÀÇÇؼ °á°úÀÇ µðÆúÆ® Á¤·Ä ¼ø¼¸¦ °áÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ÙÀ½Àº GROUP BY ÀýÀ» Æ÷ÇÔÇÏ´Â À§ÀÇ SELECT ¹®ÀåÀÌ
°è»êµÇ´Â ´Ü°è¸¦ º¸¿© ÁÝ´Ï´Ù.
SUM ÇÔ¼ö´Â °¢°¢ÀÇ ºÎ¼¹øÈ£ ±×·ì ³»ÀÇ ¸ðµç ¾÷¹«¿¡ ´ëÇÑ ±Þ¿© ¿¿¡ Àû¿ëµË´Ï´Ù.
±×·ì ÇÔ¼ö¸¦ À߸ø »ç¿ëÇÑ ÁúÀÇ
°°Àº SELECT ¹®Àå¿¡ °³º°ÀûÀÎ
¿(DEPTNO)°ú ±×·ì ÇÔ¼ö(COUNT)¸¦ È¥ÇÕÇؼ »ç¿ëÇÒ ¶§, °³º°ÀûÀÎ ¿(ÀÌ °æ¿ì¿¡´Â DEPTNO)À» ¸í½ÃÇÏ´Â GROUP BY ÀýÀ»
Æ÷ÇÔÇØ¾ß ÇÕ´Ï´Ù. GROUP BY ÀýÀÌ ¾øÀ¸¸é ¡°not a single-group group function¡± À̶ó´Â ¿¡·¯ ¸Þ½ÃÁö°¡ ³ªÅ¸³ª°í
¡®*¡¯·Î À߸ø µÈ ¿À» °¡¸®Åµ´Ï´Ù. À§ÀÇ ¿¡·¯´Â GROUP BY ÀýÀ» Ãß°¡ÇÏ¿© Á¤Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
SQL> SELECT deptno,
COUNT(ename) |
DEPTNO COUNT(ENAME) |
ÁÖ: ±×·ì ÇÔ¼ö°¡ ¾Æ´Ñ SELECT ÀýÀÇ ¾î¶² ¿À̳ª Ç¥Çö½ÄÀº GROUP BY Àý¿¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù.
±×·ì ÇÔ¼ö¸¦ À߸ø »ç¿ëÇÑ ÁúÀÇ (°è¼Ó)
WHERE ÀýÀ» »ç¿ëÇÏ¿© ±×·ìÀ»
Á¦ÇÑÇÒ ¼ö ¾ø½À´Ï´Ù. À§ÀÇ SELECT ¹®ÀåÀº Æò±Õ ±Þ¿©°¡ $2000 ÀÌ»óÀÎ ºÎ¼ÀÇ Æò±Õ ±Þ¿©¸¦ Á¦ÇÑÇϱâ À§Çؼ WHERE ÀýÀ» »ç¿ëÇ߱⠶§¹®¿¡
¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.
À§ÀÇ ¿¡·¯´Â HAVING ÀýÀ» »ç¿ëÇÏ¿© Á¤Á¤ÇÒ ¼ö ÀÖ½À´Ï´Ù.
SQL> SELECT deptno,
AVG(sal) |
DEPTNO AVG(SAL) |
±×·ì °á°ú Á¦ÇÑ
WHERE
ÀýÀ» »ç¿ëÇÏ¿© °Ë»öÇÏ´Â ÇàÀ» Á¦ÇÑÇÏ´Â °Í°ú ¶È°°Àº ¹æ¹ýÀ¸·Î HAVING ÀýÀ» »ç¿ëÇÏ¿© ±×·ìÀ» Á¦ÇÑÇÕ´Ï´Ù. ÃÖ´ë ±Þ¿©°¡ $2900 ÀÌ»óÀÎ ºÎ¼¸¸À»
³ªÅ¸³»±â À§Çؼ °¢ ºÎ¼ÀÇ ÃÖ´ë ±Þ¿©¸¦ ¾Ë°íÀÚ ÇÑ´Ù¸é ´ÙÀ½ÀÇ µÎ °¡Áö ÀÏÀ» ÇØ¾ß ÇÕ´Ï´Ù:
1. ºÎ¼¹øÈ£·Î ±×·ìÇÎÇÏ¿© °¢
ºÎ¼ÀÇ ÃÖ´ë ±Þ¿©¸¦ ¾Ë¾Æ³À´Ï´Ù.
2. ÃÖ´ë ±Þ¿©°¡ $2900 ÀÌ»óÀÎ ºÎ¼µé·Î ±×·ìÀ» Á¦ÇÑÇÕ´Ï´Ù.
HAVING Àý
HAVING ÀýÀ» »ç¿ëÇÏ¿© µð½ºÇ÷¹ÀÌµÉ ±×·ìÀ» ¸í½ÃÇÕ´Ï´Ù.
±×·¯¹Ç·Î, ±×·ì Á¤º¸¸¦ ¹ÙÅÁÀ¸·Î ±×·ìÀ» ÇÑÃþ ´õ
Á¦ÇÑÇÕ´Ï´Ù.
±¸¹®Çü½Ä¿¡¼:
group_condition
ÇàÀÇ ±×·ìÀ» Á¦ÇÑÇÏ¿©
¸í½ÃµÈ Á¶°ÇÀÌ TRUEÀÎ ±×·ìµé¸¸ ¸®Åϵǵµ·Ï ÇÕ´Ï´Ù.
¿À¶óŬ ¼¹ö´Â HAVING ÀýÀ» »ç¿ëÇÒ ¶§ ´ÙÀ½ÀÇ ´Ü°è¸¦
¼öÇàÇÕ´Ï´Ù:
HAVING ÀýÀº GROUP BY Àý ¾Õ¿¡ ¿Ã ¼ö ÀÖÁö¸¸, GROUP BY ÀýÀ» ¸ÕÀú µÎ´Â °Ô ´õ ³í¸®ÀûÀ̹ǷΠ±ÇÀåµË´Ï´Ù. HAVING ÀýÀÌ SELECT Àý¿¡ ÀÖ´Â ±×·ì¿¡ Àû¿ëµÇ±â Àü¿¡ ±×·ìÀº ±¸¼ºµÇ°í ±×·ì ÇÔ¼ö´Â °è»êµË´Ï´Ù.
HAVING Àý (°è¼Ó)
À§ÀÇ ¿¹´Â ÃÖ´ë ±Þ¿©°¡ $2900 ÀÌ»óÀÎ ºÎ¼¿¡
´ëÇؼ ºÎ¼¹øÈ£¿Í ÃÖ´ë ±Þ¿©¸¦ µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
SELECT Àý¿¡ ±×·ì ÇÔ¼ö¸¦ »ç¿ëÇÏÁö ¾Ê°í GROUP BY Àý¸¸ »ç¿ëÇÒ ¼ö
ÀÖ½À´Ï´Ù.
±×·ì ÇÔ¼öÀÇ °á°ú¸¦ ±Ù°Å·Î ÇàÀ» Á¦ÇÑÇÑ´Ù¸é, HAVING Àý »Ó¸¸ ¾Æ´Ï¶ó GROUP BY ÀýÀ» »ç¿ëÇؾß
ÇÕ´Ï´Ù.
´ÙÀ½ÀÇ ¿¹´Â ÃÖ´ë ±Þ¿©°¡ $2900 ÀÌ»óÀÎ ºÎ¼¿¡ ´ëÇؼ ºÎ¼¹øÈ£¿Í Æò±Õ ±Þ¿©¸¦ µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù.
SQL> SELECT deptno,
AVG(sal) |
DEPTNO AVG(SAL) |
HAVING Àý (°è¼Ó)
À§ÀÇ ¿¹´Â Àüü ¼öÀÔÀÌ $5000À» ÃÊ°úÇÏ´Â °¢ ¾÷¹«¿¡ ´ëÇؼ ¾÷¹«¿Í ¿ù ±Þ¿© Çհ踦 µð½ºÇ÷¹ÀÌ ÇÕ´Ï´Ù. ¿¹´Â ÆǸſøÀº
Á¦¿ÜÇÏ°í ¿ù ±Þ¿© ÇÕ°è·Î °á°ú¸¦ Á¤·ÄÇÕ´Ï´Ù.
SELECT ¹®ÀÇ °á°ú¿¡¼ groupÀ» Á¦ÇÑÇϱâ À§ÇØ »ç¿ëÇÏ´Â ÀýÀº?
A. WHERE
B. HAVING
C. ORDER
BY
D. GROUP BY
´ä