¶á±Ý ¾øÀÌ Äõ¸® Áú¹®Á» Çϳª ÇÒ±ú¿ä  
 ±Û¾´ÀÌ:½ºÇÁ·ç½º

, Hit : 714

µ¥ÀÌÅʹ 







ÀÌ·¸°Ô µÇ¾î Àִµ¥ È­¸é¿¡´Â









ÀÌ·±½ÄÀ¸·Î µ¹·Á¼­ »Ñ·Á ´Þ¶ó°í Çϴµ¥ ÀÌ°Ô Äõ¸®·Î °¡´É ÇÒ±î¿ä??

 

  ½ºÇÁ·ç½º
ȸ¿ø´ÔÀÇ ¼Ò°³±ÛÀÌ ¾ø½À´Ï´Ù.
Á¤º¸·Â:2330
Ä£Àýµµ:4911

¸ù½©
Á¤º¸·Â:21380
Ä£Àýµµ:10936
 
09-26 11:54
Before ¿Í AfterÀÇ °ü°è¸¦ Àß ¸ð¸£°Ú¾î¿ä. Á¶±Ý ´õ ¼³¸íÇØ ÁÖ¼Å¾ß ÇÒ °Í °°Àºµ¥¿ä?
³ÄÇÏÇÏ
Á¤º¸·Â:1200
Ä£Àýµµ:1824
 
09-26 12:05
Oracle À̸é Unpivot ¸í·É¾î¸¦ »ç¿ëÇÏ½Ã¸é µÉ µí ÇÕ´Ï´Ù
·ê·ç³­³ª
Á¤º¸·Â:1470
Ä£Àýµµ:714
 
09-26 12:59
¹æ¹ýÀº ¸î°¡Áö ÀÖ½À´Ï´Ù.
https://brunch.co.kr/@hyeonsig/11
EveR
Á¤º¸·Â:2880
Ä£Àýµµ:6412
 
09-26 13:43

Çà°ú ¿­ÀÌ Â¥¿©Áø Åë°èÇ¥¶ó¸é Äõ¸® ÇѹøÀ¸·Î °¡´ÉÇѵ¥,

Ä÷³º°·Î record ¼ö ÀÚü°¡ ´Ù¸£¹Ç·Î Äõ¸®¸¸À¸·Î´Â Èûµé°Í °°Àºµ¥¿ä?

À§¿¡ ¸»¾¸ÇϽŠpivot °°Àº ¹æ¹ýµéµµ °á±¹¿£ Çà°ú ¿­ÀÌ °íÁ¤ÀûÀÏ °æ¿ì¿¡¸¸ °¡´ÉÇÑ°Ì´Ï´Ù.

(»ç½Ç Àú´Â ƯÁ¤ DBMS Á¾¼ÓÀûÀ롃 º°·Î ¾ÈÁÁ¾ÆÇؼ­, pivotÀº º°·Î ½áº¸Áú ¾Ê¾ÒÁö¸¸, ±×·²°Ì´Ï´Ù^^;)

°ü°èÇüDB´Â °á±¹ SELECTÇÑ Ä÷³¿¡ ´ëÇÑ ·¹Äڵ尡 Ãâ·ÂµÇ´Â °ÍÀ̱⠶§¹®¿¡,

Ä÷³º°·Î ·¹ÄÚµå¼ö°¡ ´Ù¸£´Ù´Â°Ç ÀÖÀ» ¼ö ¾øÁÒ.

ÇÏÁö¸¸ ÇÁ·Î±×·¥ÀÇ µµ¿òÀ» ¹Þ°í Äõ¸® 2¹ø Á¤µµ¸é °¡´ÉÇÏ°Ú½À´Ï´Ù

ÀÌ·± ½ÄÀ¸·Î¿ä¡¦




  • ÀÏ´Ü Çì´õ·Î »ç¿ëµÉ ¸ñ·ÏÀ» ±¸ÇÕ´Ï´Ù. ¿©±â¼± ÆÄÆ®¸íÀÌ°ÚÁÒ


    SELECT ÆÄÆ®¸í FROM Á¶Á÷Á¤º¸;




  • ±¸ÇØÁø Çì´õ¸¦ ÇÁ·Î±×·¥À» LOOP µ¹¸ç µ¿ÀûÀ¸·Î Äõ¸®¸¦ ¸¸µì´Ï´Ù. [] ¾ÈÀº ÇÁ·Î±×·¥ ÄÚµåÀÔ´Ï´Ù.




SELECT 

[for i=0 to ÆÄÆ®¸í ¼ö]
[if i>0 then print ,]
P[print i].¸â¹ö¸í
[end for]
FROM (
/* ¼­·Î ´Ù¸¥ ·¹ÄÚµå¼ö¸¦ Çϳª·Î JOIN ½ÃÅ°±â À§ÇØ ·¹ÄÚµå¼ö°¡ Á¦ÀÏ ¸¹Àº ÆÄÆ®¸¦ ±âÁØÀ¸·Î ¸¶½ºÅͼº ·¹Äڵ带 ¸¸µé¾îÁÝ´Ï´Ù */
SELECT
ROWNUM as rn
FROM ¸â¹öÁ¤º¸
WHERE ÆÄÆ®¸í = (
SELECT ÆÄÆ®¸í
FROM Á¶Á÷Á¤º¸
GROUP BY ÆÄÆ®¸í
HAVING COUNT(*) = (
SELECT MAX(COUNT(*))
FROM Á¶Á÷Á¤º¸
GROUP BY ÆÄÆ®¸í
)
) mas
/* ¿©±â¼­ºÎÅÍ ÆÄÆ®º° ¸â¹ö¸¦ JOINÇØ ³ª°©´Ï´Ù */
[for i=0 to ÆÄÆ®¸í ¼ö]
LEFT JOIN (
SELECT
ROWNUM as rn
, ¸â¹ö¸í
FROM ¸â¹öÁ¤º¸
WHERE ÆÄÆ®¸í = [i¹ø° ÆÄÆ®¸í]
) P[print i]
ON mas.rn = P[print i].rn
[end for]

ÀÌ·¸°Ô ÇÏ¸é µÇ°Ú³×¿ä¡¦

¾ð¾î°¡ ¹ºÁö ¸ô¶ó¼­ ÀÏ´Ü ±×³É [~] ·Î ÇÁ·Î±×·¥ µé¾î°¥ ºÎºÐ ¼³¸íÇѰű¸¿ä¡¦

°á°úÀûÀ¸·Î ÆÄÆ®°¡ 2°³¸é ÀÌ·±½ÄÀ¸·Î Äõ¸®°¡ »ý¼ºµÇ¾î¾ßÁÒ¡¦

(Çì´õ´Â ÃÖ»ó´Ü¿¡ Äõ¸®·Î ºÙ¿©¼­ UNION Çìµµ µÇ°í, µû·Î ÇÁ·Î±×·¥À¸·Î »Ñ·Áµµ µÇ°Ú½À´Ï´Ù)


SELECT 

P1.¸â¹ö¸í
, P2.¸â¹ö¸í
FROM (
/* ¼­·Î ´Ù¸¥ ·¹ÄÚµå¼ö¸¦ Çϳª·Î JOIN ½ÃÅ°±â À§ÇØ ·¹ÄÚµå¼ö°¡ Á¦ÀÏ ¸¹Àº ÆÄÆ®¸¦ ±âÁØÀ¸·Î ¸¶½ºÅͼº ·¹Äڵ带 ¸¸µé¾îÁÝ´Ï´Ù */
SELECT
ROWNUM as rn
FROM ¸â¹öÁ¤º¸
WHERE ÆÄÆ®¸í = (
SELECT ÆÄÆ®¸í
FROM Á¶Á÷Á¤º¸
GROUP BY ÆÄÆ®¸í
HAVING COUNT(*) = (
SELECT MAX(COUNT(*))
FROM Á¶Á÷Á¤º¸
GROUP BY ÆÄÆ®¸í
)
) mas
/* ¿©±â¼­ºÎÅÍ ÆÄÆ®º° ¸â¹ö¸¦ JOINÇØ ³ª°©´Ï´Ù */
LEFT JOIN (
SELECT
ROWNUM as rn
, ¸â¹ö¸í
FROM ¸â¹öÁ¤º¸
WHERE ÆÄÆ®¸í = 'ÆÄÆ®¸í1'
) P1
ON mas.rn = P1.rn
LEFT JOIN (
SELECT
ROWNUM as rn
, ¸â¹ö¸í
FROM ¸â¹öÁ¤º¸
WHERE ÆÄÆ®¸í = 'ÆÄÆ®¸í2'
) P2
ON mas.rn = P2.rn