select
c.customer_id,
c.customer_name,
count(distinct o.order_id) as feb_2024_order_count,
round(ifnull(sum(qty*price),0),2)feb_2024_total_amount,
round(if(count(distinct o.order_id)=0,0,sum(qty*price)/count(distinct o.order_id)),2)feb_2024_avg_order_amount,
min(order_date) as feb_2024_first_order_date,
max(order_date) as feb_2024_last_order_date
from
customers as c
left join orders as o on c.customer_id = o.customer_id and left(order_date,7)='2024-02'
left join order_items as oi on o.order_id = oi.order_id
group by
c.customer_id,
c.customer_name
order by
feb_2024_total_amount desc,
c.customer_id asc;