
mysql groupby结果取最新的一条数据返回
其中,子查询的作用是获取每个分组(即每个`name`)中的最新日期,而外层查询则使用这个最新日期和`name`进行`JOIN`操作,查询出最新的记录。可以使用子查询和`MAX()`函数结合来实现获取最新的一条数据。
可以使用子查询和`MAX()`函数结合来实现获取最新的一条数据。假设有以下的数据:
```
| id | name | date |
|----|------|------------|
| 1 | Bob | 2019-01-01 |
| 2 | Jack | 2019-02-01 |
| 3 | Tom | 2019-03-01 |
| 4 | Amy | 2019-04-01 |
| 5 | Sam | 2019-05-01 |
| 6 | Ted | 2019-06-01 |
```
如果你想按照`name`分组并获取每个分组最新的一条数据,可以使用以下的 SQL 查询语句:
```
SELECT t1.id, t1.name, t1.date
FROM your_table t1
INNER JOIN (
SELECT name, MAX(date) AS max_date
FROM your_table
GROUP BY name
) t2
ON t1.name = t2.name AND t1.date = t2.max_date;
```
这条 SQL 查询语句会返回以下结果:
```
| id | name | date |
|----|------|------------|
| 4 | Amy | 2019-04-01 |
| 2 | Jack | 2019-02-01 |
| 5 | Sam | 2019-05-01 |
| 3 | Tom | 2019-03-01 |
| 6 | Ted | 2019-06-01 |
| 1 | Bob | 2019-01-01 |
```
其中,子查询的作用是获取每个分组(即每个`name`)中的最新日期,而外层查询则使用这个最新日期和`name`进行`JOIN`操作,查询出最新的记录。
更多推荐
所有评论(0)