| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 2. SQL¾ð¾î | Fast Forward | Next |
´Ù¸¥ ´ëºÎºÐÀÇ 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;
Áý°è¿Í SQLÀÇ WHERE¿Í HAVING±¸ »çÀÌÀÇ »óÈ£ÀÛ¿ëÀ» ÀÌÇØÇÏ´Â °ÍÀÌ Áß¿äÇÕ´Ï´Ù. WHERE¿Í HAVINGÀÇ ±âº»ÀûÀÎ Â÷À̰¡ ¾Æ·¡¿¡ ÀÖ½À´Ï´Ù. WHERE´Â, ±×·ìÀ̳ª Áý°è¸¦ ¿¬»êÇϱâ Àü¿¡ ÀÔ·ÂÇàÀ» ¼±ÅÃÇÕ´Ï´Ù(µû¶ó, À̰ÍÀº ¾î´À ÇàÀ» »ç¿ëÇØ Áý°è ¿¬»êÀ» ½Ç½ÃÇÏ´ÂÁö Á¦¾îÇÕ´Ï´Ù). ÇÑÆí, HAVING´Â, ±×·ì°ú Áý¾àÀ» ¿¬»êÇÑ ÈÄ¿¡, ±×·ìÈ µÈ ÇàÀ» ¼±ÅÃÇÕ´Ï´Ù. µû¶ó¼, WHERE±¸´Â Áý°è ÇÔ¼ö¸¦ °¡Áú ¼ö ¾ø½À´Ï´Ù. Áý°è¸¦ »ç¿ëÇØ, ¾î´À ÇàÀ» ±× Áý°èÀÇ ÀÔ·ÂÀ¸·Î ÇÏ´ÂÁö¸¦ °áÁ¤ÇÏ´Â °ÍÀº ÀÌÄ¡¿¡ ¸ÂÁö ¾Ê½À´Ï´Ù ÇÑÆí, HAVING±¸´Â Ç×»ó Áý°è ÇÔ¼ö¸¦ °¡Áý´Ï´Ù (¾ö¹ÐÇÏ°Ô ¸»Çϸé, Áý°è¸¦ »ç¿ëÇÏÁö ¾Ê´Â HAVING±¸¸¦ ¾µ ¼ö ÀÖÁö¸¸, À̰ÍÀº Á»Ã³·³ À¯¿ëÇÏÁö ¾Ê½À´Ï´Ù. °°Àº Á¶°ÇÀº WHEREÀÇ ´Ü°è¿¡¼ Á» ´õ È¿À² ÁÁ°Ô »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù).
ÀÌÀüÀÇ ¿¹¿¡¼´Â WHERE³»¿¡ µµ½Ã¸í Á¦ÇÑÀ» Àû¿ëÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. Áý°è¸¦ ½Ç½ÃÇÒ Çʿ䰡 ¾ø±â ¶§¹®ÀÔ´Ï´Ù. WHEREÀÇ °Ë»ç·Î ½ÇÆÐÇÏ´Â ¸ðµç Çà¿¡ ´ëÇÑ ±×·ìȳª Áý°è ¿¬»êÀ» ÇÏÁö ¾ÊÀ¸¹Ç·Î, HAVING¿¡ Á¦ÇÑÀ» Ãß°¡ÇÏ´Â °Íº¸´Ù È¿À²ÀûÀÔ´Ï´Ù.