mysql查询查找一段时间内的固定和

mysql查询查找一段时间内的固定和,mysql,sum,period,Mysql,Sum,Period,我有一个mysql表,其中包含以下列 订单号 客户识别码 总金额 添加日期 现在,我想询问一位特定客户,了解该客户在其订单历史记录的六个月内是否已完成超过或等于12000美元的订单。这个时期不是最近的 有什么解决办法吗 问候,, 迪本 将nnn替换为特定的客户ID,将YYYY-MM-DD替换为您感兴趣的6个月期的开始 更新: 这将使用客户上次订单之前的6个月时间: select sum(total_amount) >= 12000 over_1200 from mytable join (

我有一个mysql表,其中包含以下列

订单号 客户识别码 总金额 添加日期

现在,我想询问一位特定客户,了解该客户在其订单历史记录的六个月内是否已完成超过或等于12000美元的订单。这个时期不是最近的

有什么解决办法吗

问候,, 迪本

将nnn替换为特定的客户ID,将YYYY-MM-DD替换为您感兴趣的6个月期的开始

更新:

这将使用客户上次订单之前的6个月时间:

select sum(total_amount) >= 12000 over_1200
from mytable join (select max(date_added) last_date
                   from mytable
                   where customer_id = nnn) last
where customer_id = nnn
and date_added between last_date and date_sub(last_date, interval 6 month)
更新2:

select m1.date_added end_date, sum(m2.total_amount) >= 12000 
from mytable m1 join mytable m2 on m2.date_added between date_sub(m1.date_added, interval 6 month) and m1.date_added and m1.customer_id = m2.customer_id
where m1.customer_id = nnn
group by end_date
order by end_date

我没有开始日期。相反,我需要根据以前的订单计算。你从哪个订单开始计算?最近的?谢谢Barmar。我的目的是检查客户是否在所有订单的六个月内完成了12000或以上的订单。您所做的查询是针对固定日期范围的。没有固定的日期。我认为我们需要参考上一批订单,并与6个月的日期范围进行比较。请参阅更新2,它查看每个订单后面的6个月。为什么不为所有客户返回结果?
select m1.date_added end_date, sum(m2.total_amount) >= 12000 
from mytable m1 join mytable m2 on m2.date_added between date_sub(m1.date_added, interval 6 month) and m1.date_added and m1.customer_id = m2.customer_id
where m1.customer_id = nnn
group by end_date
order by end_date