From a2866e757d8271dfa3fdf0eb296d5ca4fdd919c8 Mon Sep 17 00:00:00 2001 From: Yasmine Date: Mon, 30 Sep 2024 16:57:45 +0200 Subject: [PATCH 1/6] =?UTF-8?q?corriger=20le=20nombre=20de=20givers=20et?= =?UTF-8?q?=20receivers=20sur=20la=20p=C3=A9riode=20s=C3=A9l=C3=A9ctionn?= =?UTF-8?q?=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feedbackers_giver_receiver_repartition.sql | 18 ++++++++++++++++++ usage-analytics/create-analytics/main.py | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql diff --git a/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql b/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql new file mode 100644 index 000000000..d145b7e88 --- /dev/null +++ b/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql @@ -0,0 +1,18 @@ +WITH feedbacks AS ( + SELECT + JSON_EXTRACT_SCALAR(DATA, "$.giverEmail") AS giverEmail, + JSON_EXTRACT_SCALAR(DATA, "$.receiverEmail") AS receiverEmail + FROM firestore_export.feedback_raw_latest + +), +all_emails_feedbackers AS ( + SELECT giverEmail AS email FROM feedbacks + UNION DISTINCT + SELECT receiverEmail AS email FROM feedbacks +) + +SELECT + COUNT(DISTINCT giverEmail) AS total_givers, -- Nombre total de givers uniques + COUNT(DISTINCT receiverEmail) AS total_receivers, -- Nombre total de receivers uniques + COUNT(DISTINCT email) AS total_feedbackers -- Nombre total de feedbackers (givers + receivers sans doublons) +FROM feedbacks, all_emails_feedbackers; \ No newline at end of file diff --git a/usage-analytics/create-analytics/main.py b/usage-analytics/create-analytics/main.py index 0f4613ad2..1f9eaf040 100644 --- a/usage-analytics/create-analytics/main.py +++ b/usage-analytics/create-analytics/main.py @@ -67,4 +67,7 @@ def create_analytics_tables(*_): execute_query("externe_feedbacks_per_month.sql", "feedzback_usage", "externe_feedbacks_per_month") # This query answer the question "how many feedbacks are shared with managers each month" execute_query("shared_feedbacks_per_month.sql", "feedzback_usage", "shared_feedbacks_per_month") + # This query answers the question: "What is the number of givers, the number of receivers, and the total number of feedbackers?" + execute_query("feedbackers_giver_receiver_repartition.sql", "feedzback_usage", "feedbackers_giver_receiver_repartition") + return 'OK' From d244031477bc601d14a33b228dd02dcc421c2a07 Mon Sep 17 00:00:00 2001 From: Yasmine Date: Wed, 2 Oct 2024 13:25:42 +0200 Subject: [PATCH 2/6] =?UTF-8?q?corriger=20la=20requete=20pour=20r=C3=A9cup?= =?UTF-8?q?=C3=A9rer=20le=20nombre=20de=20givers=20et=20receivers=20sur=20?= =?UTF-8?q?la=20p=C3=A9riode=20s=C3=A9l=C3=A9ctionn=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feedbackers_giver_receiver_repartition.sql | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql b/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql index d145b7e88..25b60d96e 100644 --- a/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql +++ b/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql @@ -1,18 +1,9 @@ WITH feedbacks AS ( SELECT + DATE_TRUNC(TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(DATA, "$.createdAt") AS INT)), DAY) AS day, JSON_EXTRACT_SCALAR(DATA, "$.giverEmail") AS giverEmail, JSON_EXTRACT_SCALAR(DATA, "$.receiverEmail") AS receiverEmail FROM firestore_export.feedback_raw_latest - -), -all_emails_feedbackers AS ( - SELECT giverEmail AS email FROM feedbacks - UNION DISTINCT - SELECT receiverEmail AS email FROM feedbacks ) - -SELECT - COUNT(DISTINCT giverEmail) AS total_givers, -- Nombre total de givers uniques - COUNT(DISTINCT receiverEmail) AS total_receivers, -- Nombre total de receivers uniques - COUNT(DISTINCT email) AS total_feedbackers -- Nombre total de feedbackers (givers + receivers sans doublons) -FROM feedbacks, all_emails_feedbackers; \ No newline at end of file +SELECT DISTINCT * +FROM feedbacks \ No newline at end of file From cdb35e8d40893bdd270c893379bcec773dda3b6e Mon Sep 17 00:00:00 2001 From: Yasmine Date: Wed, 2 Oct 2024 15:56:19 +0200 Subject: [PATCH 3/6] calculer le nombre total des feedbackers --- .../create-analytics/all_feedbackers.sql | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 usage-analytics/create-analytics/all_feedbackers.sql diff --git a/usage-analytics/create-analytics/all_feedbackers.sql b/usage-analytics/create-analytics/all_feedbackers.sql new file mode 100644 index 000000000..65953e02d --- /dev/null +++ b/usage-analytics/create-analytics/all_feedbackers.sql @@ -0,0 +1,22 @@ +WITH giver_emails AS ( + SELECT + DATE_TRUNC(TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(DATA, "$.createdAt") AS INT)), DAY) AS day, + JSON_EXTRACT_SCALAR(DATA, "$.giverEmail") AS email + FROM firestore_export.feedback_raw_latest +), + +receiver_emails AS ( + SELECT + DATE_TRUNC(TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(DATA, "$.createdAt") AS INT)), DAY) AS day, + JSON_EXTRACT_SCALAR(DATA, "$.receiverEmail") AS email + FROM firestore_export.feedback_raw_latest +) + +SELECT DISTINCT + day, + email +FROM ( + SELECT day, email FROM giver_emails + UNION ALL + SELECT day, email FROM receiver_emails +) AS all_emails \ No newline at end of file From d19ba45e9cf9fb1cba59d06b97cf6046e24a5529 Mon Sep 17 00:00:00 2001 From: Yasmine Date: Thu, 3 Oct 2024 15:32:19 +0200 Subject: [PATCH 4/6] ajouter la requete du total des feedbackers au main file --- usage-analytics/create-analytics/main.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/usage-analytics/create-analytics/main.py b/usage-analytics/create-analytics/main.py index 1f9eaf040..73d122e4c 100644 --- a/usage-analytics/create-analytics/main.py +++ b/usage-analytics/create-analytics/main.py @@ -67,7 +67,8 @@ def create_analytics_tables(*_): execute_query("externe_feedbacks_per_month.sql", "feedzback_usage", "externe_feedbacks_per_month") # This query answer the question "how many feedbacks are shared with managers each month" execute_query("shared_feedbacks_per_month.sql", "feedzback_usage", "shared_feedbacks_per_month") - # This query answers the question: "What is the number of givers, the number of receivers, and the total number of feedbackers?" + # This query answers the question: "What is the number of givers and the number of receivers" execute_query("feedbackers_giver_receiver_repartition.sql", "feedzback_usage", "feedbackers_giver_receiver_repartition") - + # This query answers the question: "What is the total number of feedbackers?" + execute_query("all_feedbackers.sql", "feedzback_usage", "all_feedbackers") return 'OK' From fdcf3825ae83e4dd262962ad1a7451165cc108fb Mon Sep 17 00:00:00 2001 From: Yasmine Date: Fri, 4 Oct 2024 15:24:19 +0200 Subject: [PATCH 5/6] =?UTF-8?q?exclure=20les=20givers=20et=20les=20receive?= =?UTF-8?q?rs=20des=20feedbacks=20non=20r=C3=A9pondus?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../feedbackers_giver_receiver_repartition.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql b/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql index 25b60d96e..a44ba26e2 100644 --- a/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql +++ b/usage-analytics/create-analytics/feedbackers_giver_receiver_repartition.sql @@ -3,7 +3,9 @@ WITH feedbacks AS ( DATE_TRUNC(TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(DATA, "$.createdAt") AS INT)), DAY) AS day, JSON_EXTRACT_SCALAR(DATA, "$.giverEmail") AS giverEmail, JSON_EXTRACT_SCALAR(DATA, "$.receiverEmail") AS receiverEmail + FROM firestore_export.feedback_raw_latest ) SELECT DISTINCT * -FROM feedbacks \ No newline at end of file +FROM feedbacks +WHERE JSON_EXTRACT_SCALAR(DATA, "$.status") = "done" \ No newline at end of file From 5d05353b320f8838ab37398da2159b60eb7e641a Mon Sep 17 00:00:00 2001 From: Yasmine Date: Mon, 7 Oct 2024 12:02:11 +0200 Subject: [PATCH 6/6] supprimer la requete qui calcule le total (receivers et givers) --- .../create-analytics/all_feedbackers.sql | 22 ------------------- usage-analytics/create-analytics/main.py | 2 -- 2 files changed, 24 deletions(-) delete mode 100644 usage-analytics/create-analytics/all_feedbackers.sql diff --git a/usage-analytics/create-analytics/all_feedbackers.sql b/usage-analytics/create-analytics/all_feedbackers.sql deleted file mode 100644 index 65953e02d..000000000 --- a/usage-analytics/create-analytics/all_feedbackers.sql +++ /dev/null @@ -1,22 +0,0 @@ -WITH giver_emails AS ( - SELECT - DATE_TRUNC(TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(DATA, "$.createdAt") AS INT)), DAY) AS day, - JSON_EXTRACT_SCALAR(DATA, "$.giverEmail") AS email - FROM firestore_export.feedback_raw_latest -), - -receiver_emails AS ( - SELECT - DATE_TRUNC(TIMESTAMP_MILLIS(CAST(JSON_EXTRACT_SCALAR(DATA, "$.createdAt") AS INT)), DAY) AS day, - JSON_EXTRACT_SCALAR(DATA, "$.receiverEmail") AS email - FROM firestore_export.feedback_raw_latest -) - -SELECT DISTINCT - day, - email -FROM ( - SELECT day, email FROM giver_emails - UNION ALL - SELECT day, email FROM receiver_emails -) AS all_emails \ No newline at end of file diff --git a/usage-analytics/create-analytics/main.py b/usage-analytics/create-analytics/main.py index 73d122e4c..64acff06c 100644 --- a/usage-analytics/create-analytics/main.py +++ b/usage-analytics/create-analytics/main.py @@ -69,6 +69,4 @@ def create_analytics_tables(*_): execute_query("shared_feedbacks_per_month.sql", "feedzback_usage", "shared_feedbacks_per_month") # This query answers the question: "What is the number of givers and the number of receivers" execute_query("feedbackers_giver_receiver_repartition.sql", "feedzback_usage", "feedbackers_giver_receiver_repartition") - # This query answers the question: "What is the total number of feedbackers?" - execute_query("all_feedbackers.sql", "feedzback_usage", "all_feedbackers") return 'OK'