mySql获取重复条目的最后记录[重复]

Posted

技术标签:

【中文标题】mySql获取重复条目的最后记录[重复]【英文标题】:mySql to get last records of duplicate entries [duplicate] 【发布时间】:2012-02-12 06:04:24 【问题描述】:

可能重复:Retrieving the last record in each group

大家好,我的表格数据如下

ID   FedTaxID  RegularPay  Payperiodnumber

1    562545366   500            1
2    562545366   501            1
3    562545366   5000           2

我想按如下方式获取我的数据

 ID    FedTaxID    RegularPay   Payperiodnumber
 2     562545366     501            1
 3     562545366     5000           2

我尝试了以下类似的方法,但没有得到所需的结果

select max(id) ID,regularpay,fedtaxid,payperiodnumber
from tblemployeegrosswagesn1 where fedtaxid="562545366"
group by payperiodnumber
having count(*) >= 1;

谁能帮帮我

【问题讨论】:

***.com/questions/1313120 newtover 非常感谢 :-) 【参考方案1】:

这应该会给你想要的结果:

SELECT      t.ID, 
            t.FedTaxID, 
            t.RegularPay, 
            t.Payperiodnumber

FROM        tblemployeegrosswagesn1 t
INNER JOIN  (SELECT MAX(ID) AS MaxId, 
                    FedTaxID, 
                    Payperiodnumber 
             FROM  tblemployeegrosswagesn1  
             GROUP BY FedTaxID, Payperiodnumber) AS InnerQuery ON t.ID = InnerQuery.MaxId AND t.Payperiodnumber = InnerQuery.Payperiodnumber AND t.FedTaxID = InnerQuery.FedTaxID

WHERE        t.FedTaxID = '562545366';

我对 newtover 发布的链接很感兴趣;但是,在这种情况下,您需要每个 payperiodnumber 的最大 id,因此您必须对其进行更多调整。它看起来像:

SELECT              t.Id,
                    t.FedTaxId,
                    t.RegularPay,
                    t.Payperiodnumber

FROM                tblemployeegrosswagesn1 t

LEFT JOIN           tblemployeegrosswagesn1 t1  ON (t.FedTaxId = t1.FedTaxId AND t.Payperiodnumber = t1.PayperiodNumber AND t.id < t1.id)   

WHERE               t1.ID IS NULL   
AND                 t.FedTaxId = '562545366'

这更容易阅读。非常感谢@BillKarwin 提供了一个简洁的基于集合的解决方案。感谢您有机会学习一种新的(鉴于发布的链接更好)的做事方式。

【讨论】:

这个也可以,但更简单的是Check 解决后标记为答案

以上是关于mySql获取重复条目的最后记录[重复]的主要内容,如果未能解决你的问题,请参考以下文章

SQL获取最后一个日期时间记录[重复]

MongoDB 使用 ensureIndex 删除重复项,但保留最后一个条目而不是第一个条目

mysql:按用户获取最后一次对话记录[重复]

mysql:按用户获取最后一次对话记录[重复]

MySQL - 在单独的列中跟踪重复记录类型

如何获取mysql重复项中的最后一条数据