28 일마다 스키마의 모든 테이블 레코드 수를 기록하는 테이블이 있습니다. 표는 다음과 같은 열이 있습니다 "TABLE_NAME"VARCHAR2 (100 BYTE), "RECORD_COUNT"번호, "CREATED"날짜를28 일 사이에 레코드 수가 차이가 있음
나는 다음과 같은 데이터가있는 로그 파일 밖으로 스풀 싶습니다 :
을 테이블 이름은-
도움 주셔서 감사합니다.
28 일마다 스키마의 모든 테이블 레코드 수를 기록하는 테이블이 있습니다. 표는 다음과 같은 열이 있습니다 "TABLE_NAME"VARCHAR2 (100 BYTE), "RECORD_COUNT"번호, "CREATED"날짜를28 일 사이에 레코드 수가 차이가 있음
나는 다음과 같은 데이터가있는 로그 파일 밖으로 스풀 싶습니다 :
을 테이블 이름은도움 주셔서 감사합니다.
뭔가가
SELECT table_name,
record_count,
prior_record_count,
record_count - prior_record_count diff
FROM (SELECT table_name,
record_count,
lag(record_count)
over (partition by table_name
order by created) prior_record_count,
rank()
over (partition by table_name
order by created) rnk
FROM <<name of table>>)
WHERE rnk = 1
오라클의 LAG 기능을 통해 필요한 것을 제공해야합니다. 이전 행의 데이터를 반환하는 분석 함수입니다. 다음은 작동합니다 :이 같은
select
table_name,
record_count,
prev_record_count,
record_count - nvl(previous_record_count, 0) as difference
from (
select
table_name,
record_count,
lag(record_count) over (order by created) as prev_record_count
from
log_table
);
Danimal을해야한다, 또한 결과에 표시 널 기록이있다. 나의 테이블은 다음과 같다 : Record1-Table1,580,23-JAN-12, Record2-Table1,580,20-FEB-12. 귀하의 쿼리를 반환합니다 : Record1-Table1,580, (null), (null) \t \t Record2-Table1,580,580,0 – Ram
아 예, 테이블 이름으로 파티션을 잊어 버렸습니다. 좋은 대답. –
저스틴 내가 오류를 얻을 : ORA-00923를 : 00923. 00000을 예상 한 위치에 FROM 키워드를 찾을 수 없습니다 - "예상 위치를 찾을 수 없습니다 FROM 키워드" 는 * 원인 : 은 * 작업 : 라인에서 오류 : 28 열 : 1 – Ram
내가 만든 약간의 사소한 수정과 그 작업. SELECT TABLE_NAME, record_count, prior_record_count, record_count - TABLE_NAME 순서에 의해 prior_record_count DIFF 생성) prior_record_count에 의해 TABLE_NAME 순서에 의해 (파티션 이상 (SELECT TABLE_NAME, record_count, 지연 (record_count)에서 순위() 파티션 (이상으로 만든) rnk FROM TABLE1) 어디 rnk = 2 – Ram