AVG ÇÔ¼ö

ÀÌ ÇÔ¼ö´Â ÁöÁ¤µÈ Ä÷³¿¡ ´ëÇÑ Á¶°ÇÀ» ¸¸Á·ÇÏ´Â Çà Áß¿¡¼­ NULLÀ» Á¦¿ÜÇÑ Æò±ÕÀ» ±¸Çϴµ¥ ¾²ÀδÙ.
ÀÌ ÇÔ¼ö´Â numeric µ¥ÀÌÅÍŸÀÔÀ̳ª ¶Ç´Â ¹¬½ÃÀûÀ¸·Î nonnumeric µ¥ÀÌÅÍ Å¸ÀÔÀÌ numeric µ¥ÀÌÅÍÀÔÀ¸·Î ÀüȯµÇ´Â °æ¿ì¿¡µµ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
returnµÇ´Â µ¥ÀÌÅÍŸÀÔÀº ¾Æ±Ô¸ÕÆ®ÀÇ numeric µ¥ÀÌÅÍŸÀÔ°ú µ¿ÀÏÇÑ numeric µ¥ÀÌÅÍŸÀÔÀ» ¹ÝȯÇÑ´Ù.
Ű¿öµå DISTINCT¸¦ ÁöÁ¤Çϸé, analyticÀý¿¡¼­ query_partition¿¡¸¸ »ç¿ëÇϸç, order_by ÀýÀ̳ª windowing Àý¿¡¼­´Â »ç¿ëÇÒ ¼ö ¾ø´Ù.
 aggregate ÇÔ¼ö³ª
 analytic ÇÔ¼ö·Î »ç¿ëµÈ´Ù. 

¡¼Çü½Ä¡½
	AVG( [DISTINCT ¦ ALL] Ä÷³¸í)
	   [ [OVER] (analytic Àý)]

¡¼¿¹Á¦¡½¢Ð  aggregate ¿¹
SQL> select * from emp;

        ID NAME           SALARY      BONUS
---------- ---------- ---------- ----------
      1101 Cho               250        125
      1102 Joe               240        100
      1103 kim               250        100
      1104 jijoe             220        100

SQL> select avg(salary) from emp;

AVG(SALARY)
-----------
        240

SQL>
¡¼¿¹Á¦¡½¢Ð  analytic ¿¹
SQL> select avg(distinct salary) over(partition by bonus)
  2  from emp;

AVG(DISTINCTSALARY)OVER(PARTITIONBYBONUS)
-----------------------------------------
                               236.666667
                               236.666667
                               236.666667
                                      250

 
SQL> select avg(salary) over(partition by bonus order by id
    2 rows between 1 preceding and 1 following) as avg  from emp;

       AVG
----------
       245
236.666667
       235
       250

SQL> 

SQL> select avg(comm)from emp; AVG(COMM) ---------- 550 ¢Ð º¸³Ê½º¸¦ ¹Þ´Â »ç¶÷µé¸¸ÀÇ Æò±Õ SQL> select AVG(NVL(comm,0)) from emp; AVG(NVL(COMM,0)) ---------------- 183.333333 ¢Ð »ç¿ø Àüü¿¡ ´ëÇÑ º¸³Ê½ºÀÇ Æò±Õ SQL> ÀÌ ¿¹¿¡¼­ º¸³Ê½º¸¦ ¹ÞÁö ¾Ê´Â »ç¶÷Àº Á¦¿ÜµÇ´Â ¿ì¸¦ °³¼±Çϱâ À§Çؼ­ NVL ÇÔ¼ö·ê »ç¿ëÇØ¾ß ÀüüÀÇ Æò±Õ º¸³Ê½º°¡ °è»êµÈ´Ù.