mysql - 选择最新的行,忽略旧的重复项

标签 mysql sql select duplicates distinct

在我的表中,我有以下列:

CRMID | user | ticket_id | | description | date | hour

我想做的是从表中选择所有行,但是当两行(或更多行)具有相同的 ticket_id 时,我只希望最新的出现在结果中, 因此具有最新日期和时间的行。

这里的问题是我应该添加案例,如果日期列的值相同,那么我将比较小时列,否则,很简单,因为我将只比较日期列。

最佳答案

  SELECT 
    n.*
FROM 
    table n RIGHT JOIN  (
       SELECT 
         MAX(date) AS max_date,
         (SELECT MAX(hour) AS hour WHERE date = max_date) AS hour,
         user,
         ticket_id 
       FROM
         table
       GROUP BY
         user,
         ticket_id
       ) m ON n.user = m.user AND n.ticket_id = m.ticket_id

关于mysql - 选择最新的行,忽略旧的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23220844/

相关文章:

Angular "select"输入,根据所选选项更改变量

mysql - 如何保存由其他两个表组成的临时表的位置?

mysql - 2 个表查询 - 从每个表中选择并从两个表中报告

C# 比较数组中的值是否找到 SQL 表

python - 在 python 2.7.5 中使用来自 cx_Oracle 模块的函数 callproc 执行脚本

mysql - 如何在 mysql 中将 update 与 select...for update 一起使用

ruby-on-rails - 在 Rails 中验证失败时,选择提示选项消失

jquery - Laravel whereRaw、orWhereRaw 与 FIND_IN_SET 查询未专门运行

php - 如何在php中传递两个参数并获取过滤结果?

MySQL:使用来自不同表的值从组中选择最大值?