2.7. Áý°è ÇÔ¼ö

´Ù¸¥ ´ëºÎºÐÀÇ RDB Á¦Ç° °°ÀÌ, PostgreSQL´Â Áý°è ÇÔ¼ö¸¦ Áö¿øÇÕ´Ï´Ù. Áý°è ÇÔ¼ö´Â º¹¼öÀÇ ÀÔ·ÂÇàÀ¸·ÎºÎÅÍ 1°³ÀÇ °á°ú¸¦ °è»êÇÕ´Ï´Ù. ¿¹¸¦ µé¸é, ÇàÀÇ ÁýÇÕ¿¡ ´ëÇØ¼­, count(ÃѼö), sum(ÃÑÈ­), avg(Æò±Õ), max(ÃÖ´ë), min(ÃÖ¼Ò)¶ó´Â ¿¬»êÀ» ½Ç½ÃÇÏ´Â Áý°è°¡ ÀÖ½À´Ï´Ù.

¿¹·Î¼­, ´ÙÀ½°ú °°ÀÌ ¸ðµç µµ½ÃÀÇ ÃÖÀú ±â¿ÂºÎÅÍ °¡Àå ³ôÀº ±â¿ÂÀ» ¾Ë ¼ö ÀÖ½À´Ï´Ù.

SELECT max(temp_lo) FROM weather;

 max
-----
  46
(1 row)

¾î´À µµ½ÃÀÇ µ¥ÀÌÅÍÀÎÁö ¾Ë°í ½Í´Ù¸é, ¾Æ·¡¿Í °°Àº Äõ¸®¸¦ ½ÃÇàÇÒÁöµµ ¸ð¸¨´Ï´Ù.

SELECT city FROM weather WHERE temp_lo = max(temp_lo);     ½Ç¼ö

±×·¯³ª, maxÁý°è¸¦ WHERE·Î »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡, ÀÌ ¸í·ÉÀº ÀÛµ¿ÇÏÁö ¾Ê½À´Ï´Ù (WHERE±¸´Â ¾î´À ÇàÀ» Áý°è 󸮿¡ °Ç³×ÁÙ °ÍÀÎÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀ¸·Î, µû¶ó¼­, Áý°è ÇÔ¼öÀÇ ¿¬»êÀ» ½Ç½ÃÇϱâ Àü¿¡ ºÐ¸íÇÏ°Ô Æò°¡µÇ¾î¾ß ÇÕ´Ï´Ù. ÀÌ ¶§¹®¿¡ ÀÌ Á¦ÇÑÀÌ ÀÖ½À´Ï´Ù). ±×·¯³ª ´ëºÎºÐÀÇ °æ¿ì, Äõ¸®¸¦ °íÃÄ ¾²´Â °ÍÀ¸·Î, ÀǵµÇÑ °á°ú¸¦ ¾òÀ» ¼ö ÀÖ½À´Ï´Ù. À̰Ϳ¡´Â ÀÌÇÏ¿Í °°Àº ¼­ºêÄõ¸®¸¦ »ç¿ëÇÕ´Ï´Ù.

SELECT city FROM weather
    WHERE temp_lo = (SELECT max(temp_lo) FROM weather);

     city
---------------
 San Francisco
(1 row)

¼­ºêÄõ¸®´Â, ¿ÜºÎ Äõ¸®·Î ÀϾ´Â °Í°ú µû·Î µû·Î Áý°è¸¦ °è»êÇÏ´Â µ¶¸³ÇÑ ¿¬»êÀ̹ǷÎ, ÀÌ Äõ¸®´Â ¹®Á¦°¡ ¾ø½À´Ï´Ù.

¶Ç, GROUP BY±¸·Î Á¶ÇÕÇÑ Áý°è´Â ¸Å¿ì µµ¿òÀÌ µË´Ï´Ù. ¿¹¸¦ µé¸é, ÀÌÇÏÀÇ ¸í·ÉÀ¸·Î µµ½Ã ¸¶´Ù ÃÖÀú ±â¿ÂÀÇ ÃÖ´ëÄ¡¸¦ ¿ä±¸ÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù.

SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city;

     city      | max
---------------+-----
 Hayward       |  37
 San Francisco |  46
(2 rows)

µµ½Ã ¸¶´Ù 1ÇàÀÇ Ãâ·ÂÀÌ ÀÖ½À´Ï´Ù. °¢°¢ÀÇ Áý°è °á°ú´Â µµ½Ã¿¡ ÀÏÄ¡ÇÏ´Â Å×À̺íÇà Àüü¿¡ ´ëÇÑ ¿¬»ê °á°úÀÔ´Ï´Ù. ÀÌÇÏ¿Í °°ÀÌ, HAVING¸¦ »ç¿ëÇϸé, ±×·ìÈ­ µÈ Çà¿¡ ÇÊÅ͸¦ °É ¼ö ÀÖ½À´Ï´Ù.

SELECT city, max(temp_lo)
    FROM weather
    GROUP BY city
    HAVING max(temp_lo) < 40;

  city   | max
---------+-----
 Hayward |  37
(1 row)

ÀÌ ¸í·ÉÀº À§¿Í °°Àº °è»êÀ» ½Ç½ÃÇÏÁö¸¸, ¸ðµç temp_loÀÇ °ªÀÌ 40 ¹Ì¸¸ÀÎ µµ½Ã¸¸À» Ãâ·ÂÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î, "S"·ÎºÎÅÍ ½ÃÀ۵Ǵ À̸§ÀÇ µµ½Ã¸¸À» ´ë»óÀ¸·Î ÇÏ°í ½ÍÀº °æ¿ì´Â, ÀÌÇϸ¦ ½Ç½ÃÇÕ´Ï´Ù.

SELECT city, max(temp_lo)
    FROM weather
    WHERE city LIKE 'S%'
(1)

    GROUP BY city
    HAVING max(temp_lo) < 40;

(1)
LIKE¿¬»êÀÚ´Â ÆÐÅÏ ¸ÅĪÀ» ½Ç½ÃÇÕ´Ï´Ù. À̰Ϳ¡ ´ëÇØ¼­´Â Section 9.7¿¡¼­ ¼³¸íÇÕ´Ï´Ù.

Áý°è¿Í SQLÀÇ WHERE¿Í HAVING±¸ »çÀÌÀÇ »óÈ£ÀÛ¿ëÀ» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. WHERE¿Í HAVINGÀÇ ±âº»ÀûÀÎ Â÷À̰¡ ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù. WHERE´Â, ±×·ìÀ̳ª Áý°è¸¦ ¿¬»êÇϱâ Àü¿¡ ÀÔ·ÂÇàÀ» ¼±ÅÃÇÕ´Ï´Ù(µû¶ó, À̰ÍÀº ¾î´À ÇàÀ» »ç¿ëÇØ Áý°è ¿¬»êÀ» ½Ç½ÃÇÏ´ÂÁö Á¦¾îÇÕ´Ï´Ù). ÇÑÆí, HAVING´Â, ±×·ì°ú Áý¾àÀ» ¿¬»êÇÑ ÈÄ¿¡, ±×·ìÈ­ µÈ ÇàÀ» ¼±ÅÃÇÕ´Ï´Ù. µû¶ó¼­, WHERE±¸´Â Áý°è ÇÔ¼ö¸¦ °¡Áú ¼ö ¾ø½À´Ï´Ù. Áý°è¸¦ »ç¿ëÇØ, ¾î´À ÇàÀ» ±× Áý°èÀÇ ÀÔ·ÂÀ¸·Î ÇÏ´ÂÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀº ÀÌÄ¡¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù ÇÑÆí, HAVING±¸´Â Ç×»ó Áý°è ÇÔ¼ö¸¦ °¡Áý´Ï´Ù (¾ö¹ÐÇÏ°Ô ¸»Çϸé, Áý°è¸¦ »ç¿ëÇÏÁö ¾Ê´Â HAVING±¸¸¦ ¾µ ¼ö ÀÖÁö¸¸, À̰ÍÀº Á»Ã³·³ À¯¿ëÇÏÁö ¾Ê½À´Ï´Ù. °°Àº Á¶°ÇÀº WHEREÀÇ ´Ü°è¿¡¼­ Á» ´õ È¿À² ÁÁ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù).

ÀÌÀüÀÇ ¿¹¿¡¼­´Â WHERE³»¿¡ µµ½Ã¸í Á¦ÇÑÀ» Àû¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Áý°è¸¦ ½Ç½ÃÇÒ Çʿ䰡 ¾ø±â ¶§¹®ÀÔ´Ï´Ù. WHEREÀÇ °Ë»ç·Î ½ÇÆÐÇÏ´Â ¸ðµç Çà¿¡ ´ëÇÑ ±×·ìÈ­³ª Áý°è ¿¬»êÀ» ÇÏÁö ¾ÊÀ¸¹Ç·Î, HAVING¿¡ Á¦ÇÑÀ» Ãß°¡ÇÏ´Â °Íº¸´Ù È¿À²ÀûÀÔ´Ï´Ù.