| PostgreSQL 8.3.3¹®¼ | ||||
|---|---|---|---|---|
| Prev | Fast Backward | Chapter 7. Äõ¸® | Fast Forward | Next |
ÀüÀý·Î °¡¸®Å² °Íó·³, SELECT¸í·É ÁßÀÇ Å×À̺í½ÄÀº, Å×À̺íÀÇ °áÇÕÀ̳ª ºä, ÇàÀÇ ÃßÃâ, ±×·ìȵ ÀÇÇØ Áß°£ÀÇ °¡»ó Å×À̺íÀ» ¸¸µì´Ï´Ù. ÀÌ Å×À̺íÀº ÃÖÁ¾ÀûÀ¸·Î ¼±Åà ¸®½ºÆ®¿¡°Ô °Ç³×Áý´Ï´Ù. ¼±Åà ¸®½ºÆ®´Â, Áß°£ÀÇ Å×À̺íÀÇ ¾î´À ¿ ÀÌ ½ÇÁ¦·Î Ãâ·ÂµÉÁö¸¦ °áÁ¤ÇÕ´Ï´Ù.
Å×À̺í½ÄÀÌ »ý¼ºÇÏ´Â ¸ðµç ¿À» Ãâ·ÂÇÏ´Â *ÀÌ °¡Àå °£´ÜÇÑ ¼±Åà ¸®½ºÆ®ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ¼±Åà ¸®½ºÆ®´Â, Äĸ¶·Î ´Ü¶ôÁö¾îÁø(Section 4.2·Î Á¤ÀǵÈ) Æò°¡½ÄÀÇ ¸®½ºÆ®ÀÔ´Ï´Ù. ¿¹¸¦ µé¸é, ÀÌÇÏ¿Í °°Àº ·Ä¸íÀÇ ¸®½ºÆ®¿©µµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù.
SELECT a, b, c FROM ...
a, b, c¶ó°í ÇÏ´Â ·Ä¸íÀº, FROM±¸·Î ÂüÁ¶µÇ´Â Å×À̺íÀÇ ½ÇÁ¦ÀÇ ·Ä¸íÀ̳ª, ȤÀº Section 7.2.1.2À¸·Î ¼³¸íÇÑ °Í °°Àº ·Ä¸í¿¡ ´ëÇÑ º°¸íÀÔ´Ï´Ù. ±×·ìȵǾî ÀÖÁö ¾ÊÀ¸¸é, ¼±Åà ¸®½ºÆ®·Î »ç¿ë °¡´ÉÇÑ À̸§ °ø°£Àº WHERE±¸¿Í °°½À´Ï´Ù. ±×·ìÈ µÇ°í ÀÖ´Â °æ¿ì´Â, HAVING±¸·Î °°°ÔµË´Ï´Ù.
¸¸¾à, µÎ °¡Áö ÀÌ»óÀÇ Å×À̺íÀÌ °°Àº À̸§ÀÇ ¿ÀÌ ÀÖ´Â °æ¿ì´Â, ´ÙÀ½°ú °°ÀÌ, Å×À̺í¸íÀ» ¹Ýµå½Ã ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¾ÈµË´Ï´Ù.
SELECT tbl1.a, tbl2.a, tbl1.b FROM ...
º¹¼öÀÇ Å×À̺íÀ» »ç¿ëÇÏ´Â °æ¿ì, ƯÁ¤ÀÇ Å×À̺íÀÇ ¸ðµç ¿À» ¿ä±¸ÇÏ´Â ¹æ¹ýµµ Æí¸®ÇÒ ¼ö ÀÖ½À´Ï´Ù.
SELECT tbl1.*, tbl2.a FROM ...
(Section 7.2.2µµ ÂüÁ¶ÇØ ÁÖ¼¼¿ä. )
ÀÓÀÇÀÇ Æò°¡½ÄÀÌ ¼±Åà ¸®½ºÆ®·Î »ç¿ëµÇ´Â °æ¿ì, µ¹·ÁÁÖ¾îÁö´Â Å×À̺íÀº, °³³äÀûÀ¸·Î´Â »õ·Ó°Ô °¡»óÀûÀÎ ¿À» Ãß°¡ÇÑ °ÍÀÌ µË´Ï´Ù. Æò°¡½ÄÀº, °¢°¢ÀÇ °á°úÇàÀ¸·Î, ±× ¿ÂüÁ¶¸¦ ġȯÇÑ ÇàÀÇ °ªÀ¸·Î ÇØ¼ ÀÏ´Ü Æò°¡µË´Ï´Ù. ±×·¯³ª, ¼±Åà ¸®½ºÆ®ÀÇ ½ÄÀº FROM±¸·Î ÁöÁ¤µÈ Å×À̺í½Ä¿¡ ±â·ÏµÇ¾î ÀÖ´Â ÀÏÀÇ ¿À» ÂüÁ¶ÇÏ´Â °ÍÀÏ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ¿¹¸¦ µé¸é, ±×°ÍµéÀº Á¤¼ö »ê¼ú½Ä¿¡¼µµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù.
¼±Åà ¸®½ºÆ®ÁßÀÇ Ç׸ñÀº ÈÄÀÇ Ã³¸®¸¦ À§Çؼ À̸§À» ÇÒ´çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ìÀÇ "µÚÀÇ Ã³¸®"¶õ, ¿É¼ÇÀÇ Á¤·Ä ÁöÁ¤À̳ª Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀÔ´Ï´Ù(¿¹¸¦ µé¸é, ¿Çì´õ¸¦ Ç¥½ÃÇϱâ À§Çؼ »ç¿ëÇÕ´Ï´Ù). ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.
SELECT a AS value, b + c AS sum FROM ...
¸¸¾à, AS¸¦ »ç¿ëÇÑ ·Ä¸íÀÇ ÁöÁ¤ÀÌ ¾ø¾ú´ø °æ¿ì, ½Ã½ºÅÛÀº, ±âº»°ªÀÇ À̸§À» ÇÒ´çÇÕ´Ï´Ù. ´Ü¼øÇÑ ¿ÀÇ ÂüÁ¶¿¡¼´Â, ÂüÁ¶µÈ ·Ä¸íÀÌ µË´Ï´Ù. ÇÔ¼ö È£Ãâ¿¡¼´Â, ÇÔ¼ö¸íÀÌ µË´Ï´Ù. º¹ÀâÇÑ Ç¥Çö¿¡ ´ëÇØ¼´Â, ½Ã½ºÅÛÀÌ ¹ü¿ëÀÇ À̸§À» »ý¼ºÇÕ´Ï´Ù.
Note: ¿©±â¼ÀÇ Ãâ·Â¿ÀÇ À̸§Àº, FROM±¸(Section 7.2.1.2¸¦ ÂüÁ¶)·Î °¡¸®Å² °Í°ú´Â ´Ù¸¨´Ï´Ù. °æ·Î 󸮷Î, °°Àº ¿À» 2¹ø °³¸íÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù¸¸, ¼±Åà ¸®½ºÆ® Áß¿¡¼ ¼±ÅÃµÈ À̸§ÀÌ °Ç³×Áý´Ï´Ù.
¼±Åà ¸®½ºÆ®°¡ ó¸®µÈ ÈÄ, °á°ú Å×À̺íÀÇ Áߺ¹ÇàÀ» »èÁ¦ÀÇ ´ë»óÀ¸·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̰ÍÀ» ÁöÁ¤Çϱâ À§Çؼ´Â, SELECTÀÇ Á÷ÈÄ¿¡ DISTINCTŰ¿öµå¸¦ ±â¼úÇÕ´Ï´Ù.
SELECT DISTINCT select_list ...
(DISTINCT´ë½Å¿¡ ALLŰ¿öµå¸¦ ÁöÁ¤Çϸé, ¸ðµç ÇàÀÌ ±âº»°ªÀ¸·Î º¸°ü À¯ÁöµË´Ï´Ù. )
Àû¾îµµ 1°³ÀÇ ¿ÀÇ °ªÀÌ ´Ù¸¥ °æ¿ì, ±× 2ÇàÀº º°°³·Î °£Áֵ˴ϴÙ. NULL°ªÀº, ÀÌ ºñ±³¿¡ ÀÖ¾î µ¿ÀÏÇÏ´Ù°í º¸ÀÔ´Ï´Ù.
¶Ç, ÀÓÀÇÀÇ ½ÄÀ» »ç¿ëÇØ, ¾î´À ÇàÀÌ º°µµÀÎÁö¸¦ °áÁ¤ÇÒ ¼öµµ ÀÖ½À´Ï´Ù.
SELECT DISTINCT ON (
expression
[,
expression
...])
select_list
...
expression ´Â, ¸ðµç ÇàÀ¸·Î Æò°¡µÇ´Â ÀÓÀÇÀÇ Æò°¡½ÄÀÔ´Ï´Ù. ¸ðµç ½ÄÀÌ µ¿ÀÏÇØÁö´Â ÇàÀÇ ÁýÇÕÀº, Áߺ¹Çϰí ÀÖ´Â °ÍÀ¸·Î º¸¿© ÁýÇÕÀÇ ÃÖÃÊÀÇ ÇุÀÌ Ãâ·ÂµË´Ï´Ù. DISTINCTÇÊÅÍ ¿¡ °É¸®´Â ÇàÀÇ ¼ø¼ÀÇ ÀÏÀǼºÀ» º¸ÁõÇÒ ¼ö ÀÖµµ·Ï Äõ¸®°¡ ¿À» Á¤·ÄÇÏÁö ¾Ê´Â ÇÑ, Ãâ·ÂµÇ´Â ÁýÇÕÀÇ "ÃÖÃÊÀÇ Çà"Àº ¿¹»ó ºÒ°¡´ÉÇÑ °ÍÀ»ÁÖÀÇÇØ ÁÖ¼¼¿ä (DISTINCT ON󸮴Â, ORDER BY¿¡ ÀÇÇÑ Á¤·Ä µÚ¿¡ ÇàÇØÁý´Ï´Ù).
DISTINCT ON±¸´Â, Ç¥ÁØ SQLÀÌ ¾Æ´Õ´Ï´Ù. °Ô´Ù°¡ °á°ú°¡ ºÎÁ¤ÀÌ µÉ °¡´É¼ºÀÌ Àֱ⠶§¹®¿¡, ¹Ù¶÷Á÷ÇÏÁö ¾ÊÀº ½ºÅ¸ÀÏ·Î °£ÁÖµÉ ¼öµµ ÀÖ½À´Ï´Ù. GROUP BY¿Í FROMÁßÀÇ ¼ºêÄõ¸®¸¦ Àß »ç¿ëÇÏ´Â °ÍÀ¸·Î, ÀÌ ±¸¹®À» »ç¿ëÇÏÁö ¾Ê°í ³¡³³´Ï´Ù. ±×·¯³ª, DISTINCT ON±¸´Â ¸¹Àº °æ¿ì ¸Å¿ì Æí¸®ÇÑ ´ë¾ÈÀÌ µË´Ï´Ù.