SQLзапрос на сравнение двух групп сложных выборок
Нужна помощь.
Не могу сформировать запрос в SQL.
Есть следующие таблицы:
Таблица t1 – таблица, с персональными данными о клиентах:
t1.account – номер счета;
t1.name – ФИО клиента;
t1.birthday – год рождения (DD/MM/YYYY).
Таблица t2 – таблица, с данными о заказах клиентов:
t2.account – номер счета;
t2.no_of_order – номер заказа;
t2.day_of_order – дата заказа (DD/MM/YYYY);
t2.invoice_amount – сумма заказа по ценам инвойса.
Необходимо написать запрос, результат которого – сравнение продаж клиентов в 2018 году против 2017 по группам за возрастом 18-23, 24-30, 31-45 и 46+.
Ответы (1 шт):
Автор решения: tcpack4
→ Ссылка
Примерно должен получится такой запрос:
select
sum(with_age.invoice_amount) sum_invoice_amount,
case
when age >= 18 and age <= 23 then "18-23"
when age >= 24 and age <= 30 then "24-30"
when age >= 31 and age <= 45 then "31-45"
when age >= 46 then "46+"
else "N-A"
end age_category
from (
select
t2.account,
t2.invoice_amount,
year(now()) - year(str_to_date(t1.birthday, '%d/%m/%Y')) age,
from orders t2
join accounts t1 on t1.account = t2.account
where t2.day_of_order between '2017-01-01' and '2017-12-31'
) with_age
group by age_category