Mysql выберите одну из повторяющихся строк - PullRequest
1 голос
/ 30 августа 2011

Я пытаюсь выбрать самую последнюю запись дубликатов записи для ticket_id в таблице mysql, Мой текущий что-то вроде этого.

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

Это дает количество раз, когда строка дублируется, но я могу выбрать самую последнюю из этих множественных строк

Допустим, у меня есть 3 ticket_id, которые дублировались 5 раз, так что теперь я хочу выбрать последнее вхождение из всех этих 3 идентификаторов.

Дай мне знать, должен ли я быть более конкретным.

Спасибо

Ответы [ 2 ]

5 голосов
/ 30 августа 2011

Вот один из способов (при условии, что «последний» означает «наибольший идентификатор»)

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    

Я подозреваю, что может быть возможно найти более эффективное решение , включающее переменные пользователя , ноЯ оставлю это кому-то еще ...

0 голосов
/ 26 октября 2017
SELECT distinct *
FROM    temp_tickets
GROUP BY ticket_id
ORDER BY id DESC
...