第二题描述的有问题,一个人买了3次,第一次、第二次、第三次,取第二次购买的商品,去掉第一、第三,只取第二次,用sql查询是做不到的,需要写存储过程,如果是取第一次之后的所有购买(第2、3、4、5...)可以取 select 商品编码,sum(金额) 金额 from [ods.order] where convert(varchar(4),订单日期,121)='2023' and 会员ID In (select 会员ID from tempdb.member_twice) and 订单号 not in ( select 首次购买订单号 from ( --取复购人群中的每个人的第一次购买订单,应该是用min(订单时间)的,但是这个订单时间没有精确到时分秒 select 会员ID, min(订单号) 首次购买订单号 from [ods.order] where convert(varchar(4),订单日期,121)='2023' and 会员ID In (select 会员ID from tempdb.member_twice) )aa ) group by 商品编码 order by sum(金额)