Select id,kind,uid,cname from info_table a where CONTAINS(pdname,'XX产品') and DATEDIFF(day,addtime,getdate())<7
and not exists(select 1 from info_table where CONTAINS(pdname,'XX产品') and DATEDIFF(day,addtime,getdate())<7 and cname = a.cname and id < a.id)
order by addtime desc
另一种写法,用row_number(),未经测试
select a.* from (
Select id,kind,uid,cname,row_number()over(partition by cname order by id ) as row from info_table where CONTAINS(pdname,'XX产品') and DATEDIFF(day,addtime,getdate())<7
)a where a.row=1