逆向求解, 首先我们用 case when 语句把 0和1 对应的值变为1,把2对应的值变为0,添加成state这一列,构建一个新表t2 接着,要想求出2021年每个月的GMV,那么我们先求出每天的GMV,total_amount*state过滤掉了退货的情况,得到表t1 最后,按照月份聚合,得到我们想要的结果 select date_format(dt, '%Y-%m') month, round(sum(tz), 0) GMV from (SELECT date(event_time) dt, ...