CASE 2 GROUP LEVEL NEW
Fri May 05 2023 09:02:43 GMT+0000 (Coordinated Universal Time)
Saved by @shubhangi_burle
%jdbc(hive) set tez.queue.name=phonepe_verified; set hive.execution.engine=tez; -- CASE 2 GROUP LEVEL COMBINED SELECT P.run_date_monday, P.group_name , week1_ticket_cnt , week1_reply_cnt , week1_private_note_cnt , week1_reopen_cnt , week2_ticket_cnt , week2_reply_cnt , week2_private_note_cnt , week2_reopen_cnt , week3_ticket_cnt , week3_reply_cnt , week3_private_note_cnt , week3_reopen_cnt , week4_ticket_cnt , week4_reply_cnt , week4_private_note_cnt , week4_reopen_cnt , week5_ticket_cnt , week5_reply_cnt , week5_private_note_cnt , week5_reopen_cnt FROM (-- INCOMING TICKET COUNT SELECT '2023-05-22' as run_date_monday, A.group_name , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 30) THEN A.incoming_cnt ELSE 0 END) AS Week1_ticket_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 29) AND DATE_SUB('2023-05-22', 23) THEN A.incoming_cnt ELSE 0 END) AS Week2_ticket_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 22) AND DATE_SUB('2023-05-22', 16) THEN A.incoming_cnt ELSE 0 END) AS Week3_ticket_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 15) AND DATE_SUB('2023-05-22', 9) THEN A.incoming_cnt ELSE 0 END) AS Week4_ticket_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 8) AND DATE_SUB('2023-05-22', 2) THEN A.incoming_cnt ELSE 0 END) AS Week5_ticket_cnt FROM (SELECT `group` AS group_name, Date(created_time) as dt, ticket_id, COUNT(*) AS incoming_cnt FROM freshdesk.properties WHERE year IN (year(DATE_SUB('2023-05-22', 36)) , year(DATE_SUB('2023-05-22', 2))) AND month >= month(DATE_SUB('2023-05-22', 36)) AND month <= month(DATE_SUB('2023-05-22', 2)) AND Date(created_time) BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 2) AND `group` IN ('Risk Team', 'security', 'Cybercell', 'FRA-Escalations', 'Blocked Fraud', 'Lien Email', 'NPCI Escalations') GROUP BY `group`, Date(created_time), ticket_id)A GROUP BY group_name)P LEFT JOIN (-- REOPEN COUNT SELECT '2023-05-22' as run_date_monday, A.group_name , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 30) THEN B.reopen_cnt ELSE 0 END) AS Week1_reopen_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 29) AND DATE_SUB('2023-05-22', 23) THEN B.reopen_cnt ELSE 0 END) AS Week2_reopen_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 22) AND DATE_SUB('2023-05-22', 16) THEN B.reopen_cnt ELSE 0 END) AS Week3_reopen_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 15) AND DATE_SUB('2023-05-22', 9) THEN B.reopen_cnt ELSE 0 END) AS Week4_reopen_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 8) AND DATE_SUB('2023-05-22', 2) THEN B.reopen_cnt ELSE 0 END) AS Week5_reopen_cnt FROM (SELECT `group` AS group_name, Date(created_time) as dt, ticket_id FROM freshdesk.properties WHERE year IN (year(DATE_SUB('2023-05-22', 36)) , year(DATE_SUB('2023-05-22', 2))) AND month >= month(DATE_SUB('2023-05-22', 36)) AND month <= month(DATE_SUB('2023-05-22', 2)) AND Date(created_time) BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 2) AND `group` IN ('Risk Team', 'security', 'Cybercell', 'FRA-Escalations', 'Blocked Fraud', 'Lien Email', 'NPCI Escalations'))A LEFT JOIN (SELECT from_unixtime(unix_timestamp(`date` ,'yyyyMMdd'), 'yyyy-MM-dd') as dt, ticket_id, COUNT(*) AS reopen_cnt FROM freshdesk.activities WHERE from_unixtime(unix_timestamp(`date` ,'yyyyMMdd'), 'yyyy-MM-dd') >= DATE_SUB('2023-05-22', 36) AND activity_status = 'Reopen' GROUP BY from_unixtime(unix_timestamp(`date` ,'yyyyMMdd'), 'yyyy-MM-dd'), ticket_id)B ON A.ticket_id = B.ticket_id AND A.dt <= B.dt GROUP BY group_name)Q on P.run_date_monday = Q.run_date_monday AND P.group_name = Q.group_name LEFT JOIN (-- REPLY & PRIVATE NOTE COUNT SELECT '2023-05-22' as run_date_monday, A.group_name , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 30) THEN reply_cnt ELSE 0 END) AS Week1_reply_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 30) THEN private_note_cnt ELSE 0 END) AS Week1_private_note_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 29) AND DATE_SUB('2023-05-22', 23) THEN reply_cnt ELSE 0 END) AS Week2_reply_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 29) AND DATE_SUB('2023-05-22', 23) THEN private_note_cnt ELSE 0 END) AS Week2_private_note_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 22) AND DATE_SUB('2023-05-22', 16) THEN reply_cnt ELSE 0 END) AS Week3_reply_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 22) AND DATE_SUB('2023-05-22', 16) THEN private_note_cnt ELSE 0 END) AS Week3_private_note_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 15) AND DATE_SUB('2023-05-22', 9) THEN reply_cnt ELSE 0 END) AS Week4_reply_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 15) AND DATE_SUB('2023-05-22', 9) THEN private_note_cnt ELSE 0 END) AS Week4_private_note_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 8) AND DATE_SUB('2023-05-22', 2) THEN reply_cnt ELSE 0 END) AS Week5_reply_cnt , SUM(CASE WHEN A.dt BETWEEN DATE_SUB('2023-05-22', 8) AND DATE_SUB('2023-05-22', 2) THEN private_note_cnt ELSE 0 END) AS Week5_private_note_cnt FROM (SELECT `group` AS group_name, Date(created_time) as dt, ticket_id, COUNT(*) AS incoming_cnt FROM freshdesk.properties WHERE year IN (year(DATE_SUB('2023-05-22', 36)) , year(DATE_SUB('2023-05-22', 2))) AND month >= month(DATE_SUB('2023-05-22', 36)) AND month <= month(DATE_SUB('2023-05-22', 2)) AND Date(created_time) BETWEEN DATE_SUB('2023-05-22', 36) AND DATE_SUB('2023-05-22', 2) AND `group` IN ('Risk Team', 'security', 'Cybercell', 'FRA-Escalations', 'Blocked Fraud', 'Lien Email', 'NPCI Escalations') GROUP BY `group`, Date(created_time), ticket_id)A LEFT JOIN (SELECT from_unixtime(unix_timestamp(`date` ,'yyyyMMdd'), 'yyyy-MM-dd') as dt, ticket_id , COUNT(CASE WHEN activity_note_type = 0 THEN ticket_id ELSE NULL END) AS reply_cnt , COUNT(CASE WHEN activity_note_type = 3 THEN ticket_id ELSE NULL END) AS private_note_cnt FROM freshdesk.activities WHERE from_unixtime(unix_timestamp(`date` ,'yyyyMMdd'), 'yyyy-MM-dd') >= DATE_SUB('2023-05-22', 36) GROUP BY from_unixtime(unix_timestamp(`date` ,'yyyyMMdd'), 'yyyy-MM-dd'), ticket_id)C ON A.ticket_id = C.ticket_id AND A.dt <= C.dt GROUP BY group_name)R on P.run_date_monday = R.run_date_monday AND P.group_name = R.group_name ORDER BY P.group_name
Comments