首页 > 代码库 > 使用max聚合函数去重

使用max聚合函数去重

问题:jsmonth,bosscode,rewarditemid,TelNo,rewardsum这5个字段都相同即可确定这两行是重复的记录,但是计算的时候又必须用到这一行的datetime这个字段

于是,首先使用select distinct jsmonth,bosscode,rewarditemid,TelNo,rewardsum,DateTime from QuantifyRewardDetail去重,但是这样剔除的不够干净,因为这样去重只能把这6列都一样的给去掉。但是例如这两行记录就还是重复的:

2014-10    xxx    xxx    xxx   xxx   100  2014-10-08 15:30:33

2014-10    xxx    xxx    xxx   xxx   100  2014-10-08 15:25:45

所以再用下面的max聚合函数进行筛选一遍就可以了

 

select jsmonth,bosscode,rewarditemid,TelNo,rewardsum,MAX(datetime)as datetime from
(
select distinct jsmonth,bosscode,rewarditemid,TelNo,rewardsum,DateTime from QuantifyRewardDetail
where JSMonth=‘2014-10‘
)temp
group by jsmonth,bosscode,rewarditemid,TelNo,rewardsum

使用max聚合函数去重