【问题标题】:MySQL sorting and grouping on last oneMySQL对最后一个进行排序和分组
【发布时间】:2012-06-29 20:51:14
【问题描述】:

您好,我的 MYSQL 查询需要帮助

我有桌子

id | tn   | title    | customer_id |create_time | comment              |
1  | 1342 | sample1  | customer1   | 2012-01-01 | hello world          |
2  | 1342 | sample1  | customer1   | 2012-01-02 | hello world          |
3  | 1342 | sample1  | customer1   | 2012-01-03 | hello new world      |
4  | 3362 | sample2  | customer1   | 2012-01-02 | good bye world       |
5  | 3362 | sample2  | customer1   | 2012-01-03 | good bye world       |
6  | 3362 | sample2  | customer1   | 2012-01-04 | good bye world       |
7  | 3362 | sample2  | customer1   | 2012-01-05 | good bye new world   |

当我按 tn 分组时我采取了

1  | 1342 | sample1  | customer1   | 2012-01-01 | hello world          |
4  | 3362 | sample2  | customer1   | 2012-01-02 | good bye world       |

但我需要服用

3  | 1342 | sample1  | customer1   | 2012-01-03 | hello new world      |
7  | 3362 | sample2  | customer1   | 2012-01-05 | good bye new world   |

这就像通过 tn 以最大 id 或最大 create_time 分组

我该怎么做?谢谢!

【问题讨论】:

  • 添加一个 ORDER BY id DESC LIMIT 1
  • 您能提供您的实际查询吗?

标签: mysql sql group-by sql-order-by


【解决方案1】:

试试这个:

mysql> select * from ( select * from tbl2 tn order by id desc ) t group by tn;
+------+------+---------+-------------+-------------+--------------------+
| id   | tn   | title   | customer_id | create_time | comment            |
+------+------+---------+-------------+-------------+--------------------+
|    3 | 1342 | sample1 | customer1   | 2012-01-03  | hello new world    |
|    7 | 3362 | sample2 | customer1   | 2012-01-05  | good bye new world |
+------+------+---------+-------------+-------------+--------------------+
2 rows in set (0.02 sec)

【讨论】:

    【解决方案2】:
    SELECT t2.* FROM
    (SELECT MAX(id) AS id,tn FROM my_table GROUP BY tn) AS t1
    LEFT JOIN my_table AS t2 USING(id)
    

    【讨论】:

      【解决方案3】:

      试试这个

      Select t.* from 
      table t right join
      (Select max(id) as max_id from table group by tn) t1 on (t.id=t1.max_id)
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-03-07
        • 1970-01-01
        • 2019-03-24
        • 1970-01-01
        • 2022-01-14
        相关资源
        最近更新 更多