Skip to content

Commit b0aba9f

Browse files
committed
Add keyresults_amount column to evaluation view #1467
1 parent a66585c commit b0aba9f

File tree

1 file changed

+26
-22
lines changed

1 file changed

+26
-22
lines changed

backend/src/main/resources/db/migration/V3_6_0__add_evaluation_view.sql

+26-22
Original file line numberDiff line numberDiff line change
@@ -19,65 +19,69 @@ WITH team_quarters AS (
1919
FROM OBJECTIVE o
2020
GROUP BY o.team_id, o.quarter_id
2121
),
22-
latest_check_ins AS (
23-
SELECT DISTINCT ON (ci.key_result_id)
24-
ci.key_result_id,
22+
kr_latest_check_in AS (
23+
SELECT DISTINCT ON (kr.id)
24+
kr.id as key_result_id,
2525
ci.value_metric,
2626
ci.zone,
2727
kr.key_result_type,
2828
kr.stretch_goal,
2929
kr.baseline,
3030
sub_o.team_id,
3131
sub_o.quarter_id
32-
FROM check_in ci
33-
RIght JOIN key_result kr ON ci.key_result_id = kr.id
32+
FROM key_result kr
33+
LEFT JOIN CHECK_IN ci ON KR.ID = ci.KEY_RESULT_ID AND ci.MODIFIED_ON = (SELECT MAX(CC.MODIFIED_ON)
34+
FROM CHECK_IN CC
35+
WHERE CC.KEY_RESULT_ID = ci.KEY_RESULT_ID)
3436
INNER JOIN objective sub_o ON kr.objective_id = sub_o.id
35-
ORDER BY ci.key_result_id, ci.modified_on DESC
37+
ORDER BY kr.id, ci.modified_on DESC
3638
),
3739
key_result_counts AS (
3840
SELECT
3941
team_id,
4042
quarter_id,
43+
COUNT(*) AS amount_key_results,
4144
COUNT(*) FILTER (WHERE key_result_type = 'ordinal') AS amount_key_results_ordinal,
4245
COUNT(*) FILTER (WHERE key_result_type = 'metric') AS amount_key_results_metric,
4346
COUNT(*) FILTER (
4447
WHERE (key_result_type = 'ordinal' AND zone IN ('TARGET', 'STRETCH'))
45-
OR (key_result_type = 'metric' AND (value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)>= 0.7)
48+
OR (key_result_type = 'metric' AND COALESCE(((value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)),0)>= 0.7)
4649
) AS amount_key_results_in_target_or_stretch,
4750
COUNT(*) FILTER (
4851
WHERE (key_result_type = 'ordinal' AND zone = 'FAIL')
49-
OR (key_result_type = 'metric' AND (value_metric - baseline) / NULLIF(stretch_goal - baseline, 0) < 0.3)
52+
OR (key_result_type = 'metric' AND COALESCE(((value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)),0) < 0.3)
5053
) AS amount_key_results_in_fail,
5154
COUNT(*) FILTER (
5255
WHERE (key_result_type = 'ordinal' AND zone = 'COMMIT')
53-
OR (key_result_type = 'metric' AND (value_metric - baseline) / NULLIF(stretch_goal - baseline, 0) BETWEEN 0.3 AND 0.7)
56+
OR (key_result_type = 'metric' AND COALESCE(((value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)),0) BETWEEN 0.3 AND 0.7)
5457
) AS amount_key_results_in_commit,
5558
COUNT(*) FILTER (
5659
WHERE (key_result_type = 'ordinal' AND zone = 'TARGET')
57-
OR (key_result_type = 'metric' AND (value_metric - baseline) / NULLIF(stretch_goal - baseline, 0) BETWEEN 0.7 AND 1)
60+
OR (key_result_type = 'metric' AND COALESCE(((value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)),0) BETWEEN 0.7 AND 1)
5861
) AS amount_key_results_in_target,
5962
COUNT(*) FILTER (
6063
WHERE (key_result_type = 'ordinal' AND zone = 'STRETCH')
61-
OR (key_result_type = 'metric' AND ((value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)) >= 1)
64+
OR (key_result_type = 'metric' AND COALESCE(((value_metric - baseline) / NULLIF(stretch_goal - baseline, 0)),0) >= 1)
6265
) AS amount_key_results_in_stretch
63-
FROM latest_check_ins
66+
FROM kr_latest_check_in
6467
GROUP BY team_id, quarter_id
6568
)
6669
SELECT
6770
tq.team_id,
6871
tq.team_name,
6972
tq.quarter_id,
7073
tq.quarter_label,
71-
COALESCE(o.objective_amount, 0) AS objective_amount,
72-
COALESCE(o.completed_objectives_amount, 0) AS completed_objectives_amount,
73-
COALESCE(o.successfully_completed_objectives_amount, 0) AS successfully_completed_objectives_amount,
74-
COALESCE(kr.amount_key_results_ordinal, 0) AS amount_key_results_ordinal,
75-
COALESCE(kr.amount_key_results_metric, 0) AS amount_key_results_metric,
76-
COALESCE(kr.amount_key_results_in_target_or_stretch, 0) AS amount_key_results_in_target_or_stretch,
77-
COALESCE(kr.amount_key_results_in_fail, 0) AS amount_key_results_in_fail,
78-
COALESCE(kr.amount_key_results_in_commit, 0) AS amount_key_results_in_commit,
79-
COALESCE(kr.amount_key_results_in_target, 0) AS amount_key_results_in_target,
80-
COALESCE(kr.amount_key_results_in_stretch, 0) AS amount_key_results_in_stretch
74+
o.objective_amount,
75+
o.completed_objectives_amount ,
76+
o.successfully_completed_objectives_amount,
77+
kr.amount_key_results,
78+
kr.amount_key_results_ordinal,
79+
kr.amount_key_results_metric,
80+
kr.amount_key_results_in_target_or_stretch,
81+
kr.amount_key_results_in_fail,
82+
kr.amount_key_results_in_commit,
83+
kr.amount_key_results_in_target,
84+
kr.amount_key_results_in_stretch
8185
FROM team_quarters tq
8286
LEFT JOIN objectives o
8387
ON tq.team_id = o.team_id

0 commit comments

Comments
 (0)