Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 7 additions & 2 deletions DSL/Resql/analytics/POST/feedback-chats-distribution.sql
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,13 @@ scale_ratings AS (
)
) s
),
valid_feedback_count AS (
SELECT COALESCE(SUM(rc.cnt), 0) AS cnt
FROM scale_ratings sr
JOIN rating_counts rc ON sr.rating = rc.rating
),
no_feedback_count AS (
SELECT (SELECT total_chats FROM all_ended_chats) - (SELECT COUNT(*) FROM chats_filtered) AS cnt
SELECT (SELECT total_chats FROM all_ended_chats) - (SELECT cnt FROM valid_feedback_count) AS cnt
),
distribution_with_no_feedback AS (
SELECT json_agg(elem ORDER BY ord, rating_nullable NULLS LAST) AS distribution
Expand All @@ -147,7 +152,7 @@ distribution_with_no_feedback AS (
)
SELECT json_build_object(
'distribution', (SELECT distribution FROM distribution_with_no_feedback),
'total_feedback', (SELECT COUNT(*) FROM chats_filtered),
'total_feedback', (SELECT cnt FROM valid_feedback_count),
'total_chats', (SELECT total_chats FROM all_ended_chats),
'is_five_scale', (SELECT COALESCE(is_five_rating_scale, 'false') = 'true' FROM rating_config)
) AS result;
12 changes: 6 additions & 6 deletions DSL/Resql/analytics/POST/feedback-csa-chats-feedback-nps.sql
Original file line number Diff line number Diff line change
Expand Up @@ -55,14 +55,14 @@ point_nps AS (
WHEN (SELECT COALESCE(is_five_rating_scale, 'false') = 'true' FROM rating_config) THEN
ROUND(
100.0 * SUM(CASE WHEN feedback_rating_dynamic IN (4, 5) THEN 1 ELSE 0 END)
/ NULLIF(COUNT(base_id), 0),
/ NULLIF(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 1 AND 5 THEN 1 ELSE 0 END), 0),
2
)
ELSE
COALESCE(ROUND(
(
(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 9 AND 10 THEN 1 ELSE 0 END) * 1.0 / NULLIF(COUNT(base_id), 0))
- (SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 6 THEN 1 ELSE 0 END) * 1.0 / NULLIF(COUNT(base_id), 0))
(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 9 AND 10 THEN 1 ELSE 0 END) * 1.0 / NULLIF(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 10 THEN 1 ELSE 0 END), 0))
- (SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 6 THEN 1 ELSE 0 END) * 1.0 / NULLIF(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 10 THEN 1 ELSE 0 END), 0))
) * 100,
2
), 0)
Expand All @@ -76,14 +76,14 @@ period_nps AS (
WHEN (SELECT COALESCE(is_five_rating_scale, 'false') = 'true' FROM rating_config) THEN
ROUND(
100.0 * SUM(CASE WHEN feedback_rating_dynamic IN (4, 5) THEN 1 ELSE 0 END)
/ NULLIF(COUNT(base_id), 0),
/ NULLIF(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 1 AND 5 THEN 1 ELSE 0 END), 0),
2
)
ELSE
COALESCE(ROUND(
(
(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 9 AND 10 THEN 1 ELSE 0 END) * 1.0 / NULLIF(COUNT(base_id), 0))
- (SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 6 THEN 1 ELSE 0 END) * 1.0 / NULLIF(COUNT(base_id), 0))
(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 9 AND 10 THEN 1 ELSE 0 END) * 1.0 / NULLIF(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 10 THEN 1 ELSE 0 END), 0))
- (SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 6 THEN 1 ELSE 0 END) * 1.0 / NULLIF(SUM(CASE WHEN feedback_rating_dynamic BETWEEN 0 AND 10 THEN 1 ELSE 0 END), 0))
) * 100,
2
), 0)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,13 @@ scale_ratings AS (
)
) s
),
valid_feedback_count AS (
SELECT COALESCE(SUM(rc.cnt), 0) AS cnt
FROM scale_ratings sr
JOIN rating_counts rc ON sr.rating = rc.rating
),
no_feedback_count AS (
SELECT (SELECT total_chats FROM all_ended_chats) - (SELECT COUNT(*) FROM chats_filtered) AS cnt
SELECT (SELECT total_chats FROM all_ended_chats) - (SELECT cnt FROM valid_feedback_count) AS cnt
),
distribution_with_no_feedback AS (
SELECT json_agg(elem ORDER BY ord, rating_nullable NULLS LAST) AS distribution
Expand All @@ -107,7 +112,7 @@ distribution_with_no_feedback AS (
)
SELECT json_build_object(
'distribution', (SELECT distribution FROM distribution_with_no_feedback),
'total_feedback', (SELECT COUNT(*) FROM chats_filtered),
'total_feedback', (SELECT cnt FROM valid_feedback_count),
'total_chats', (SELECT total_chats FROM all_ended_chats),
'is_five_scale', (SELECT COALESCE(is_five_rating_scale, 'false') = 'true' FROM rating_config)
) AS result;
Loading