SQL 작성 시 필요한 팁
동일 데이터 중에 최근건 으로 구분하여 조회 하기
WITH CPU_METRICS AS (
--- 중복건이 존재
SELECT VALUE
, ROW_NUMBER() OVER (ORDER BY BEGIN_TIME DESC) AS RN -- 순번 지정
FROM V$SYSMETRIC
WHERE METRIC_NAME = 'Host CPU Utilization (%)'
)
-- RN으로 1인경우 2인경우 처리
SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS') CUR_DATE
, MAX(CASE WHEN RN = 1 THEN VALUE END) * 100 AS CPU_USAGE_AFTER
, MAX(CASE WHEN RN = 2 THEN VALUE END) * 100 AS CPU_USAGE_BEFORE
, (MAX(CASE WHEN RN = 1 THEN VALUE END) - MAX(CASE WHEN RN = 2 THEN VALUE END)) * 100 AS CPU_USAGE_CHANGE
FROM CPU_METRICS
WHERE RN IN (1, 2)
;
동일한 자료 삭제 방법
DELETE
FROM EMP E
WHERE E.ROWID > ( SELECT MIN(X.ROWID)
FROM EMP X
WHERE X.EMPNO = E.EMPNO );