5.2.0: min_goal по среднему вместо медианы
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m27s
All checks were successful
Build and Push Docker Image / build-and-push (push) Successful in 1m27s
This commit is contained in:
@@ -5234,10 +5234,10 @@ func (a *App) setupWeeklyGoals() error {
|
||||
EXTRACT(WEEK FROM CURRENT_DATE)::INTEGER AS c_week
|
||||
),
|
||||
goal_metrics AS (
|
||||
-- Считаем медиану на основе данных за последние 4 недели, исключая текущую неделю
|
||||
-- Считаем среднее (average) на основе данных за последние 4 недели, исключая текущую неделю
|
||||
SELECT
|
||||
project_id,
|
||||
PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY normalized_total_score) AS median_score
|
||||
AVG(normalized_total_score) AS avg_score
|
||||
FROM (
|
||||
SELECT
|
||||
project_id,
|
||||
@@ -5270,14 +5270,14 @@ func (a *App) setupWeeklyGoals() error {
|
||||
p.id,
|
||||
ci.c_year,
|
||||
ci.c_week,
|
||||
-- Если нет данных (gm.median_score IS NULL), используем 0 (значение по умолчанию)
|
||||
COALESCE(gm.median_score, 0) AS min_goal_score,
|
||||
-- Если нет данных (gm.avg_score IS NULL), используем 0 (значение по умолчанию)
|
||||
COALESCE(gm.avg_score, 0) AS min_goal_score,
|
||||
-- Логика max_goal_score в зависимости от приоритета (только если есть данные)
|
||||
CASE
|
||||
WHEN gm.median_score IS NULL THEN NULL
|
||||
WHEN p.priority = 1 THEN gm.median_score * 2.0
|
||||
WHEN p.priority = 2 THEN gm.median_score * 1.7
|
||||
ELSE gm.median_score * 1.4
|
||||
WHEN gm.avg_score IS NULL THEN NULL
|
||||
WHEN p.priority = 1 THEN gm.avg_score * 2.0
|
||||
WHEN p.priority = 2 THEN gm.avg_score * 1.7
|
||||
ELSE gm.avg_score * 1.4
|
||||
END AS max_goal_score,
|
||||
p.priority,
|
||||
p.user_id
|
||||
|
||||
Reference in New Issue
Block a user