7.3. ¼±Åà ¸®½ºÆ®

ÀüÀý·Î °¡¸®Å² °Íó·³, SELECT¸í·É ÁßÀÇ Å×À̺í½ÄÀº, Å×À̺íÀÇ °áÇÕÀ̳ª ºä, ÇàÀÇ ÃßÃâ, ±×·ìÈ­µî¿¡ ÀÇÇØ Áß°£ÀÇ °¡»ó Å×À̺íÀ» ¸¸µì´Ï´Ù. ÀÌ Å×À̺íÀº ÃÖÁ¾ÀûÀ¸·Î ¼±Åà ¸®½ºÆ®¿¡°Ô °Ç³×Áý´Ï´Ù. ¼±Åà ¸®½ºÆ®´Â, Áß°£ÀÇ Å×À̺íÀÇ ¾î´À ¿­ ÀÌ ½ÇÁ¦·Î Ãâ·ÂµÉÁö¸¦ °áÁ¤ÇÕ´Ï´Ù.

7.3.1. ¼±Åà ¸®½ºÆ® Ç׸ñ

Å×À̺í½ÄÀÌ »ý¼ºÇÏ´Â ¸ðµç ¿­À» Ãâ·ÂÇÏ´Â *ÀÌ °¡Àå °£´ÜÇÑ ¼±Åà ¸®½ºÆ®ÀÔ´Ï´Ù. ±×·¸Áö ¾ÊÀ¸¸é, ¼±Åà ¸®½ºÆ®´Â, Äĸ¶·Î ´Ü¶ôÁö¾îÁø(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±¸·Î ÁöÁ¤µÈ Å×À̺í½Ä¿¡ ±â·ÏµÇ¾î ÀÖ´Â ÀÏÀÇ ¿­À» ÂüÁ¶ÇÏ´Â °ÍÀÏ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ¿¹¸¦ µé¸é, ±×°ÍµéÀº Á¤¼ö »ê¼ú½Ä¿¡¼­µµ »ó°üÇÏÁö ¾Ê½À´Ï´Ù.

7.3.2. ¿­¶óº§

¼±Åà ¸®½ºÆ®ÁßÀÇ Ç׸ñÀº ÈÄÀÇ Ã³¸®¸¦ À§Çؼ­ À̸§À» ÇÒ´çÇÒ ¼ö°¡ ÀÖ½À´Ï´Ù. ÀÌ °æ¿ìÀÇ "µÚÀÇ Ã³¸®"¶õ, ¿É¼ÇÀÇ Á¤·Ä ÁöÁ¤À̳ª Ŭ¶óÀÌ¾ðÆ® ¾îÇø®ÄÉÀ̼ÇÀÔ´Ï´Ù(¿¹¸¦ µé¸é, ¿­Çì´õ¸¦ Ç¥½ÃÇϱâ À§Çؼ­ »ç¿ëÇÕ´Ï´Ù). ¿¹¸¦ ³ªÅ¸³À´Ï´Ù.

SELECT a AS value, b + c AS sum FROM ...

¸¸¾à, AS¸¦ »ç¿ëÇÑ ·Ä¸íÀÇ ÁöÁ¤ÀÌ ¾ø¾ú´ø °æ¿ì, ½Ã½ºÅÛÀº, ±âº»°ªÀÇ À̸§À» ÇÒ´çÇÕ´Ï´Ù. ´Ü¼øÇÑ ¿­ÀÇ ÂüÁ¶¿¡¼­´Â, ÂüÁ¶µÈ ·Ä¸íÀÌ µË´Ï´Ù. ÇÔ¼ö È£Ãâ¿¡¼­´Â, ÇÔ¼ö¸íÀÌ µË´Ï´Ù. º¹ÀâÇÑ Ç¥Çö¿¡ ´ëÇØ¼­´Â, ½Ã½ºÅÛÀÌ ¹ü¿ëÀÇ À̸§À» »ý¼ºÇÕ´Ï´Ù.

Note: ¿©±â¼­ÀÇ Ãâ·Â¿­ÀÇ À̸§Àº, FROM±¸(Section 7.2.1.2¸¦ ÂüÁ¶)·Î °¡¸®Å² °Í°ú´Â ´Ù¸¨´Ï´Ù. °æ·Î 󸮷Î, °°Àº ¿­À» 2¹ø °³¸íÇÏ´Â °ÍÀÌ °¡´ÉÇÕ´Ï´Ù¸¸, ¼±Åà ¸®½ºÆ® Áß¿¡¼­ ¼±ÅÃµÈ À̸§ÀÌ °Ç³×Áý´Ï´Ù.

7.3.3. DISTINCT

¼±Åà ¸®½ºÆ®°¡ ó¸®µÈ ÈÄ, °á°ú Å×À̺íÀÇ Áߺ¹ÇàÀ» »èÁ¦ÀÇ ´ë»óÀ¸·Î ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. À̰ÍÀ» ÁöÁ¤Çϱâ À§Çؼ­´Â, 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±¸´Â ¸¹Àº °æ¿ì ¸Å¿ì Æí¸®ÇÑ ´ë¾ÈÀÌ µË´Ï´Ù.