Я хочу добавить продажу за последние 30 дней и продажу от 30 до 90 дней с большим весом (1,5) к продаже за последние 30 дней
Я хочу добавить продажу за последние 30 дней и продажу от 30 до 90 дней с большим весом (1,5) к продаже за последние 30 дней.
SELECT userid, SUM(premiumdetails_netpremium)
from policydetail,
(SELECT userid AS partner_id, SUM(premiumdetails_netpremium) AS last30sale
FROM policydetail AS pd
WHERE DATE(sales_date) BETWEEN current_date - interval '30' day AND current_date
group by userid
) AS A
WHERE DATE(sales_date) BETWEEN current_date - interval '90' day AND current_date
group by userid
1 ответ
Решение
Я думаю, что вы хотите условную агрегацию:
SELECT userid,
SUM(CASE WHEN sales_date >= current_date - interval '30 day THEN 1.5 * premiumdetails_netpremium
ELSE premiumdetails_netpremium
END) as weighted_sum
FROM policydetail
WHERE sales_date >= current_date - interval '90' day
GROUP BY userid ;
Обратите внимание, что это предполагает, что sales_date
не в будущем.