angel7170
asked on
UNPIVOT data then PIVOT (over 7 days)
Hello,
I have below code provided by one of your experts to get statistics by weekly for the last 6 weeks. I need this in a daily basis now. How to do that? Please assist
Thank you
I have below code provided by one of your experts to get statistics by weekly for the last 6 weeks. I need this in a daily basis now. How to do that? Please assist
Thank you
DROP TABLE DQ_REPORT_DAILY purge;
CREATE TABLE DQ_REPORT_DAILY as(
SELECT table_name as TABLE_NAME,
CASE WHEN action_item like 'SOURCE_COUNT' then 'Source Row Count'
WHEN action_item like 'TARGET_COUNT' then 'Target Row Count'
WHEN action_item like 'S_MINUS_T_COUNT' then 'Source minus Target Count'
WHEN action_item like 'T_MINUS_S_COUNT' then 'Target minus Source Count'
WHEN action_item like 'BWD_COUNT' then 'Both with Differences Count' END AS ACTION_ITEM ,
MAX(curr_week) week_0,
MAX(week_ago_1) week_1,
MAX(week_ago_2) week_2,
MAX(week_ago_3) week_3,
MAX(week_ago_4) week_4,
MAX(week_ago_5) week_5
FROM (SELECT run_dt,
table_name,
action_item,
val,
(NEXT_DAY(TRUNC(SYSDATE - 7), 'Sunday') - NEXT_DAY(TRUNC(run_dt - 7), 'Sunday'))/7
run_wk
FROM DQ_HIGH_LEVEL_COUNTS UNPIVOT (val
FOR action_item
IN (source_count,
target_count,
s_minus_t_count,
t_minus_s_count,
bwd_count))) PIVOT (MAX(val)
FOR run_wk
IN (0 curr_week,
1 week_ago_1,
2 week_ago_2,
3 week_ago_3,
4 week_ago_4,
5 week_ago_5))
GROUP BY table_name, action_item
)
ORDER BY table_name, action_item;
commit;
ASKER
Please see attached is the sample data and expected data. Instead of last 6 weeks data, I want last 7 days of data.
SAMPLE-DATA.xls
SAMPLE-DATA.xls
One issue to solve with a PIVOT is the column headings, which you display as:
TABLE_NAME ACTION _ITEM 29/10/2014 28/10/2014 27/10/2014 26/10/2014 25/10/2014
Those dates in italics present a problem, could they be replaced with constants such as:
TABLE_NAME ACTION _ITEM day0 dayminus1 dayminus2 dayminus3 dayminus4 ...
TABLE_NAME ACTION _ITEM 29/10/2014 28/10/2014 27/10/2014 26/10/2014 25/10/2014
Those dates in italics present a problem, could they be replaced with constants such as:
TABLE_NAME ACTION _ITEM day0 dayminus1 dayminus2 dayminus3 dayminus4 ...
UNPIVOT was just as correct as PIVOT for a question title.
but both are incomplete - because you're doing both.
but both are incomplete - because you're doing both.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
This works but I have one issue is to exclude weekends and it should be just looking for weekdays. I apologize I should have said this previously. I can open another forum if needed. Thank you
Please provide sample data and expected output.