0% found this document useful (0 votes)
11 views6 pages

Operation Analytics and Investigating Metric Spike Analysis

The document presents two case studies analyzing job data and user engagement metrics. Case Study 1 focuses on job reviews, throughput, language distribution, and duplicate rows, while Case Study 2 examines user engagement, growth, retention, and email engagement rates. Various SQL queries are used to extract and summarize the data for both case studies.

Uploaded by

sowmyadell680
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views6 pages

Operation Analytics and Investigating Metric Spike Analysis

The document presents two case studies analyzing job data and user engagement metrics. Case Study 1 focuses on job reviews, throughput, language distribution, and duplicate rows, while Case Study 2 examines user engagement, growth, retention, and email engagement rates. Various SQL queries are used to extract and summarize the data for both case studies.

Uploaded by

sowmyadell680
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Case Study 1 (Job Data) :

A) Number of jobs reviewed:


select ds, count(job_data.job_id) as no_of_jobs, (sum(job_data.time_spent)/3600) as jobs_r
eviewed from job_data where job_data.ds between '2020-11-01' And '2020-11-
30' GROUP BY ds;

Output:

ds no_of_jobs jobs_reviewed
2020-11-25 1 0.0125
2020-11-26 1 0.0156
2020-11-27 1 0.0289
2020-11-28 2 0.0092
2020-11-29 1 0.0052
2020-11-30 2 0.0111

B) Throughput:
select job_data.ds,count(job_data.job_id) as no_of_jobs,AVG(COUNT(job_data.job_id))
over(order by ds rows between 6 preceding and current row) as throughput from job_data
GROUP by ds;

ds no_of_jobs throughput
2020-11-25 1 1.0000
2020-11-26 1 1.0000
2020-11-27 1 1.0000
2020-11-28 2 1.2500
2020-11-29 1 1.2000
2020-11-30 2 1.3333

C) Percentage share of each language:

select job_data.language,COUNT(*) as language_count, count(*) * 100.0 / sum(count(*))


over() as percentageshare from job_data GROUP By job_data.LANGUAGE order by
job_data.LANGUAGE;

language language_count percentageshare


Arabic 1 12.50000
English 1 12.50000
French 1 12.50000
Hindi 1 12.50000
Italian 1 12.50000
Persian 3 37.50000

D) Duplicate rows:
select * from (select *, row_number() over(PARTITION by job_data.job_id) as row_num from
job_data ) a where row_num > 1;

ds job_id actor_id event language time_spent org row_num


2020-11-26 23 1004 skip Persian 56 A 2
2020-11-28 23 1005 transfer Persian 22 D 3

Case Study 2 (Investigating metric spike):


A) User Engagement:

select EXTRACT(week from events.occurred_at) as week, count(events.user_id) as


weekly_user_engagement from events where events.event_type = 'engagement' And
events.event_name='login' Group by 1 order by 1;

week weekly_user_engagement
17 887
18 1985
19 2030
20 2093
21 1986
22 2157
23 2188
24 2265
25 2244
26 2266
27 2397
28 2493
29 2433
30 2583
31 2278
32 2098
33 2071
34 2052
35 104

B) User Growth:

select Month, user_count,


((user_count/LAG(user_count, 1) over (order by Month) - 1)*100) As Growth from
(select extract(month from users.created_at) as Month, count(*) as user_count from
users where users.activated_at IS NOT NULL group by 1 order by 1) a;

Month user_count Growth


1 712 NULL
2 685 -3.7921
3 765 11.6788
4 907 18.5621
5 993 9.4818
6 1086 9.3656
7 1281 17.9558
8 1347 5.1522
9 330 -75.5011
10 390 18.1818
11 399 2.3077
12 486 21.8045

C) Weekly Retention:

select first AS "Week Numbers",SUM(CASE WHEN week_number = 0 THEN 1 ELSE 0 END)


AS "Week 0",SUM(CASE WHEN week_number = 1 THEN 1 ELSE 0 END) AS "Week
1",SUM(CASE WHEN week_number = 2 THEN 1 ELSE 0 END) AS "Week 2",SUM(CASE
WHEN week_number = 3 THEN 1 ELSE 0 END) AS "Week 3",SUM(CASE WHEN
week_number = 4 THEN 1 ELSE 0 END) AS "Week 4",SUM(CASE WHEN week_number = 5
THEN 1 ELSE 0 END) AS "Week 5",SUM(CASE WHEN week_number = 6 THEN 1 ELSE 0
END) AS "Week 6",SUM(CASE WHEN week_number = 7 THEN 1 ELSE 0 END) AS "Week
7",SUM(CASE WHEN week_number = 8 THEN 1 ELSE 0 END) AS "Week 8",SUM(CASE
WHEN week_number = 9 THEN 1 ELSE 0 END) AS "Week 9",SUM(CASE WHEN
week_number = 10 THEN 1 ELSE 0 END) AS "Week 10",SUM(CASE WHEN week_number
= 11 THEN 1 ELSE 0 END) AS "Week 11",SUM(CASE WHEN week_number = 12 THEN 1
ELSE 0 END) AS "Week 12",SUM(CASE WHEN week_number = 13 THEN 1 ELSE 0 END) AS
"Week 13",SUM(CASE WHEN week_number = 14 THEN 1 ELSE 0 END) AS "Week
14",SUM(CASE WHEN week_number = 15 THEN 1 ELSE 0 END) AS "Week 15",SUM(CASE
WHEN week_number = 16 THEN 1 ELSE 0 END) AS "Week 16",SUM(CASE WHEN
week_number = 17 THEN 1 ELSE 0 END) AS "Week 17",SUM(CASE WHEN week_number
= 18 THEN 1 ELSE 0 END) AS "Week 18" FROM (select m.user_id, m.login_week, n.first,
m.login_week - first AS week_number FROM (select user_id, EXTRACT(WEEK FROM
occurred_at) AS login_week FROM events Group By 1, 2) m, (select user_id,
MIN(EXTRACT(WEEK FROM occurred_at)) AS first FROM events GROUP BY 1) n WHERE
m.user_id = n.user_id ) z
Group By first order By first;
D) Weekly Engagement:

select extract(week from e.occurred_at) As week, COUNT(DISTINCT CASE WHEN


e.device IN("macbook pro")
THEN e.user_id ELSE NULL END) AS macbook_pro,COUNT(DISTINCT CASE WHEN e.device
IN("iphone 5")
THEN e.user_id ELSE NULL END) AS iphone_5,COUNT(DISTINCT CASE WHEN e.device
IN("samsung galaxy s4")
THEN e.user_id ELSE NULL END) AS samsung_galaxy_s4,
COUNT(DISTINCT CASE WHEN e.device IN("lenovo thinkpad")
THEN e.user_id ELSE NULL END) AS lenovo_thinkpad,COUNT(DISTINCT CASE WHEN
e.device IN("macbook air")
THEN e.user_id ELSE NULL END) AS macbook_air,COUNT(DISTINCT CASE WHEN e.device
IN("nexus 5")
THEN e.user_id ELSE NULL END) AS nexus_5,COUNT(DISTINCT CASE WHEN e.device
IN("iphone 5s")
THEN e.user_id ELSE NULL END) AS iphone_5s,
COUNT(DISTINCT CASE WHEN e.device IN("dell inspiron notebook")
THEN e.user_id ELSE NULL END) AS dell_inspiron_notebook,COUNT(DISTINCT CASE
WHEN e.device IN("asus chromebook")
THEN e.user_id ELSE NULL END) AS asus_chromebook,COUNT(DISTINCT CASE WHEN
e.device IN("dell inspiron desktop")
THEN e.user_id ELSE NULL END) AS dell_inspiron_desktop,COUNT(DISTINCT CASE WHEN
e.device IN("iphone 4s")
THEN e.user_id ELSE NULL END) AS iphone_4s,COUNT(DISTINCT CASE WHEN e.device
IN("nokia lumia 635")
THEN e.user_id ELSE NULL END) AS nokia_lumia_635,
COUNT(DISTINCT CASE WHEN e.device IN("acer aspire notebook")
THEN e.user_id ELSE NULL END) AS acer_aspire_notebook,COUNT(DISTINCT CASE WHEN
e.device IN("hp pavilion desktop")
THEN e.user_id ELSE NULL END) AS hp_pavilion_desktop,COUNT(DISTINCT CASE WHEN
e.device IN("htc one")
THEN e.user_id ELSE NULL END) AS htc_one,
COUNT(DISTINCT CASE WHEN e.device IN("acer aspire desktop")
THEN e.user_id ELSE NULL END) AS acer_aspire_desktop,COUNT(DISTINCT CASE WHEN
e.device IN("mac mini")
THEN e.user_id ELSE NULL END) AS mac_mini,COUNT(DISTINCT CASE WHEN e.device
IN("samsung galaxy note")
THEN e.user_id ELSE NULL END) AS samsung_galaxy_note,COUNT(DISTINCT CASE WHEN
e.device IN("amazon fire phone")
THEN e.user_id ELSE NULL END) AS amazon_fire_phone,COUNT(DISTINCT CASE WHEN
e.device IN("ipad air")
THEN e.user_id ELSE NULL END) AS ipad_air,COUNT(DISTINCT CASE WHEN e.device
IN("nexus 7")
THEN e.user_id ELSE NULL END) AS nexus_7,COUNT(DISTINCT CASE WHEN e.device
IN("ipad mini")
THEN e.user_id ELSE NULL END) AS ipad_mini,COUNT(DISTINCT CASE WHEN e.device
IN("nexus 10")
THEN e.user_id ELSE NULL END) AS nexus_10,COUNT(DISTINCT CASE WHEN e.device
IN("kindle fire")
THEN e.user_id ELSE NULL END) AS kindle_fire,COUNT(DISTINCT CASE WHEN e.device
IN("windows surface")
THEN e.user_id ELSE NULL END) AS windows_surface,COUNT(DISTINCT CASE WHEN
e.device IN("samsumg galaxy tablet")
THEN e.user_id ELSE NULL END) AS samsung_galaxy_tablet
from events e
where e.event_type = 'engagement'
group by 1
order by 1
limit 100;
E) Email Engagement:

select week, ((weekly_emails/total)*100) AS Weekly_Digest_Rate,


((email_opens/total)*100) AS Email_Open_Rate, ((email_clickthroughs/total)*100) AS
Email_Clickthrough_Rate, ((reengagement_emails/total)*100) AS
Reengagement_Emails_Rate FROM (select extract(week from
email_events.occurred_at) AS week, COUNT(CASE WHEN email_events.action
IN("sent_weekly_digest") THEN email_events.user_id ELSE NULL END) AS
weekly_emails, COUNT(CASE WHEN email_events.action IN("email_open") THEN
email_events.user_id ELSE NULL END) AS email_opens, COUNT(CASE WHEN
email_events.action = "email_clickthrough" THEN email_events.user_id ELSE NULL END)
AS email_clickthroughs, COUNT(CASE WHEN email_events.action =
"sent_reengagement_email" THEN email_events.user_id ELSE NULL END) AS
reengagement_emails, COUNT(email_events.user_id) as total from email_events
GROUP BY 1) z GROUP BY 1 ORDER BY 1;

You might also like