I need to delete the duplicate records, having ID columns unique values and other columns having duplicate values, first need to find frmo table those records and delete.
select *
FROM HOURLY_REPORT_TABLE
where API_DATE = TO_DATE('27-SEP-20','dd-MON-yy')
and API_HOUR = 17;
ID APPLICATION API_DATE API_HOUR SO APP API ACTUAL_API AVG_RUN TOTAL_TRANS GOOD_TRANS FAIL_TRANS FAIL_PERC COUNTS_TO1 PERC_TO1 COUNTS_TO15 PERC_TO15 COUNTS_OVER15 PERC_OVER15 COUNTS_1TO5 PERC_1TO5 COUNTS_5TO10 PERC_5TO10 COUNTS_10TO15 PERC_10TO15 COUNTS_15TO30 PERC_15TO30 COUNTS_30TO60 PERC_30TO60 COUNTS_OVER60 PERC_OVER60 CREATED_USER_ID CREATED_TIME_STAMP METRIC AVG_RUN_GOOD AVG_RUN_FAIL
106508413 LS 27-SEP-20 19 ATAPortReset G2 GetCustomerSnapshot GetCustomerSnapshot 0.403 7 7 0 0 7 1 7 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 UFOSODRPT 30-SEP-20 S 0.403 0
105398782 LS 27-SEP-20 19 ATAPortReset G2 GetCustomerSnapshot GetCustomerSnapshot 0.403 7 7 0 0 7 1 7 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 UFOSODRPT 29-SEP-20 S 0.403 0
Thanks is this query is right for getting 27th sept 2020 records and API_HOUR=17
select *
from hourly_report_table t1
where exists
(
select *
from hourly_report_table t2
where t2.id <> t1.id
and t2.application = t1.application
and t2.api_date = t1.api_date
and t2.api_hour = t1.api_hour
and t2.SO=t1.so
and t2.APP=t1.APP
and t2.API=t1.API
and t2.ACTUAL_API=t1.ACTUAL_API
and t2.AVG_RUN=t1.avg_run
and t2.total_trans=t1.total_trans
and t2.good_trans=t1.good_trans
and t2.fail_trans=t1.fail_trans
and t2.fail_perc=t1.fail_perc
--and t2.counts_t01=t1.counts_t01
--and t2.perc_t01=t1.perc_t01
and t2.COUNTS_TO15=t1.COUNTS_TO15
and t2.PERC_TO15 =t1.PERC_TO15
and t2.COUNTS_5TO10=t1.COUNTS_5TO10
and t2.PERC_5TO10 =t1.PERC_5TO10
and t2.COUNTS_10TO15 =t1.COUNTS_10TO15
and t2.PERC_10TO15 =t1.PERC_10TO15
and t2.COUNTS_15TO30 = t1.COUNTS_15TO30
and t2.PERC_15TO30 =t1.PERC_15TO30
and t2.COUNTS_30TO60 = t1.COUNTS_30TO60
and t2.PERC_30TO60 =t1.PERC_30TO60
and t2.COUNTS_OVER60 = t1.COUNTS_OVER60
and t2.PERC_OVER60 = t1.PERC_OVER60
and t2.CREATED_USER_ID = t1.CREATED_USER_ID
--and t2.CREATED_TIME_STAMP = t1.CREATED_TIME_STAMP
and t2.METRIC = t1.METRIC
and t2.AVG_RUN_GOOD = t1.AVG_RUN_GOOD
and t2.AVG_RUN_FAIL = t1.AVG_RUN_FAIL
)
and t1.API_DATE = TO_DATE('27-SEP-20','dd-MON-yy')
and t1.API_HOUR = 17;
so is below query fine:
to remove multiple duplicate entries for all hours between 9/27 17:00 and 9/30 13:00 , added the requested change.
select *
from hourly_report_table t1
where exists
(
select *
from hourly_report_table t2
where t2.id <> t1.id
and t2.application = t1.application
and t2.api_date = t1.api_date
and t2.api_hour = t1.api_hour
and t2.SO=t1.so
and t2.APP=t1.APP
and t2.API=t1.API
and t2.ACTUAL_API=t1.ACTUAL_API
and t2.AVG_RUN=t1.avg_run
and t2.total_trans=t1.total_trans
and t2.good_trans=t1.good_trans
and t2.fail_trans=t1.fail_trans
and t2.fail_perc=t1.fail_perc
and t2.COUNTS_TO1=t1.COUNTS_TO1
and t2.PERC_TO1=t1.PERC_TO1
and t2.COUNTS_TO15=t1.COUNTS_TO15
and t2.PERC_TO15 =t1.PERC_TO15
and t2.COUNTS_5TO10=t1.COUNTS_5TO10
and t2.PERC_5TO10 =t1.PERC_5TO10
and t2.COUNTS_10TO15 =t1.COUNTS_10TO15
and t2.PERC_10TO15 =t1.PERC_10TO15
and t2.COUNTS_15TO30 = t1.COUNTS_15TO30
and t2.PERC_15TO30 =t1.PERC_15TO30
and t2.COUNTS_30TO60 = t1.COUNTS_30TO60
and t2.PERC_30TO60 =t1.PERC_30TO60
and t2.COUNTS_OVER60 = t1.COUNTS_OVER60
and t2.PERC_OVER60 = t1.PERC_OVER60
and t2.CREATED_USER_ID = t1.CREATED_USER_ID
--and t2.CREATED_TIME_STAMP = t1.CREATED_TIME_STAMP
and t2.METRIC = t1.METRIC
and t2.AVG_RUN_GOOD = t1.AVG_RUN_GOOD
and t2.AVG_RUN_FAIL = t1.AVG_RUN_FAIL
)
and api_date + interval '1' hour * api_hour between timestamp '2020-09-27 17:00:00' and timestamp '2020-09-30 13:00:00';
I used this below query it's deleted all previous data, and it's commited now, can you please suggest wht to do now
DELETE FROM HOURLY_REPORT_TABLE WHERE ROWID NOT IN ( SELECT min(ROWID) FROM HOURLY_REPORT_TABLE where --
api_date + interval '1' hour * api_hour between timestamp '2020-09-27 17:00:00' and timestamp '2020-09-30 13:00:00';
--API_DATE=TO_DATE('28-SEP-20','dd-MON-yy')
--and API_HOUR=17 GROUP BY ID,APPLICATION, API_DATE, API_HOUR, SO, APP, API, ACTUAL_API, AVG_RUN, AVG_RUN_GOOD, AVG_RUN_FAIL,
TOTAL_TRANS, GOOD_TRANS, FAIL_TRANS, FAIL_PERC, COUNTS_TO1, PERC_TO1, COUNTS_TO15, PERC_TO15, COUNTS_OVER15, PERC_OVER15,
COUNTS_1TO5, PERC_1TO5, COUNTS_5TO10, PERC_5TO10, COUNTS_10TO15, PERC_10TO15, COUNTS_15TO30, PERC_15TO30, COUNTS_30TO60,
PERC_30TO60, COUNTS_OVER60, PERC_OVER60, CREATED_USER_ID, CREATED_TIME_STAMP, METRIC, AVG_RUN_GOOD, AVG_RUN_FAIL);