Mysql选择一个重复的行

时间:2011-08-29 22:24:45

标签: mysql duplicates greatest-n-per-group

我正在尝试在mysql表中针对ticket_id选择重复条目的最新条目,我的当前是这样的。

SELECT  * ,
        COUNT(*) AS cnt ,
        ticket_id
FROM    temp_tickets
GROUP BY ticket_id
ORDER BY id DESC

它给出了一行重复的次数,但是我可以选择那些多行的最新行

假设我有3个ticket_id,它被重复了5次,所以现在我想从所有这3个id中选择最新的事件。

Lemme知道我是否必须更具体。

由于

2 个答案:

答案 0 :(得分:5)

这是一种方式(假设“最新”意味着“最大身份”)

SELECT  temp_tickets.*
FROM    temp_tickets
        JOIN ( SELECT   MAX(id) AS id
               FROM     temp_tickets
               GROUP BY ticket_id
               HAVING   COUNT(*) > 1
             ) latest ON latest.id = temp_tickets.id    

我怀疑有可能提出一个更有效的解决方案involving user variables,但我会将其留给其他人......

答案 1 :(得分:0)

SELECT distinct *
FROM    temp_tickets
GROUP BY ticket_id
ORDER BY id DESC