좌측테이블 데이터에서 우측테이블처럼 출력하고자합니다(2번째 행만 없어졌다 보시면됩니다)
Select MAX(Coldate) as ColDate, ColName From Table Group by ColName으로하면
여기까지는 출력해냈습니다.
이러저러해도 뒤엣 3, 4번째 컬럼을 출력하기 어려워 조언을 구합니다 ㅠㅠ
좌측테이블 데이터에서 우측테이블처럼 출력하고자합니다(2번째 행만 없어졌다 보시면됩니다)
Select MAX(Coldate) as ColDate, ColName From Table Group by ColName으로하면
여기까지는 출력해냈습니다.
이러저러해도 뒤엣 3, 4번째 컬럼을 출력하기 어려워 조언을 구합니다 ㅠㅠ
WITH TEMP_TABLE AS
(SELECT '2022-11-29' COLDATE, '»óÇ°A' COLNAME, 14 COLWIDTH, 9 COLHEIGHT FROM DUAL UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°A' COLNAME, 15 COLWIDTH, 9 COLHEIGHT FROM DUAL UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°B' COLNAME, 52 COLWIDTH, 52 COLHEIGHT FROM DUAL UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°C' COLNAME, 27 COLWIDTH, 27 COLHEIGHT FROM DUAL UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°D' COLNAME, 15 COLWIDTH, 9 COLHEIGHT FROM DUAL UNION ALL
SELECT '2022-11-2E' COLDATE, '»óÇ°E' COLNAME, 14 COLWIDTH, 9 COLHEIGHT FROM DUAL)
SELECT A.COLDATE, A.COLNAME, A.COLWIDTH, A.COLHEIGHT
FROM TEMP_TABLE A
INNER JOIN (
SELECT COLNAME, MAX(COLDATE) COLDATE
FROM TEMP_TABLE
GROUP BY COLNAME
) B ON A.COLDATE = B.COLDATE AND A.COLNAME = B.COLNAME;
DB Á¾·ù, ¹öÀü¿¡ µû¶ó ´Ù¸¦ ¼ö ÀÖÀ¸´Ï
Äõ¸® Áú¹®Àº »ç¿ëÇÏ´Â DB Á¾·ù ¹öÀüÀ» ±âº»À¸·Î Ç¥±âÇØ¾ß Á¤È®ÇÑ ´äº¯À» ¹ÞÀ» ¼ö ÀÖ½À´Ï´Ù.
SELECT ColDate, ColName, ColWidth, ColHeight
FROM (
SELECT rank() over (partition by ColName order by ColDate DESC) rk
,*
FROM Å×À̺í¸í
) lst
WHERE rk=1
µ¥ÀÌÅÍ°¡ ¸¹°í ColDate, ColName ÀÌ PK(¶Ç´Â À妽º°¡ ¼³Á¤µÈ)ÀÎ Å×À̺íÀÇ °æ¿ì À§¿¡ Àϱ¹´ÔÀÌ ¼³¸íÇϽŠ¹æ¹ýÀ¸·Î Çؾß
¼Óµµ°¡ ºü¸§´Ï´Ù.
WITH TEMP_TABLE AS (
SELECT '2022-11-29' COLDATE, '»óÇ°A' COLNAME, 14 COLWIDTH, 9 COLHEIGHT UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°A' COLNAME, 15 COLWIDTH, 9 COLHEIGHT UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°B' COLNAME, 52 COLWIDTH, 52 COLHEIGHT UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°C' COLNAME, 27 COLWIDTH, 27 COLHEIGHT UNION ALL
SELECT '2022-11-28' COLDATE, '»óÇ°D' COLNAME, 15 COLWIDTH, 9 COLHEIGHT UNION ALL
SELECT '2022-11-27' COLDATE, '»óÇ°E' COLNAME, 14 COLWIDTH, 9 COLHEIGHT
)
SELECT ColDate, ColName, ColWidth, ColHeight
FROM (
SELECT ( select count(*)
from TEMP_TABLE counter
where counter.ColName = TEMP_TABLE.ColName -- Partition
and counter.ColDate >= TEMP_TABLE.ColDate -- Order
) as rk
,*
FROM TEMP_TABLE
) lst
WHERE rk=1