MySQL View 在 Order by 之后做一个 Group by

标签 mysql group-by

“t_example”表:

id | date
---------------
1  | 2001-05-09
1  | 2005-11-05
1  | 2000-08-19
2  | 2010-10-30
2  | 2002-12-10
2  | 2009-07-29
3  | 2003-02-15
3  | 2012-04-20

我想创建一个返回以下结果的 View (每个 ID 的最大日期):

id | date_id
---------------
1  | 2005-11-05
2  | 2010-10-30
3  | 2012-04-20

MySQL 不允许在 View 中使用 order by 进行子查询,当我对子查询使用其他 View 时,group by 会忽略子查询中的 order by。

以下查询返回预期结果:

select id, date
from (select id, date from t_example order by id asc, date_id desc) p
group by p.id

但是当我在 View 中使用它时它不起作用:

view1 (subquery) : select id, date from t_example order by id asc, date_id desc;
view2 : select id, date from view1 group by view1.id;

还有其他解决办法吗?

最佳答案

这应该适合你

SELECT id, MAX(date) AS date FROM t_example GROUP BY id;

这是使用 AS 语法来保持您的列名称简洁(否则它将是 MAX(date))

关于MySQL View 在 Order by 之后做一个 Group by,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19368456/

相关文章:

java - Spring MongoDB 聚合组 - 无法正确获取组查询

mysql - 如何合并所有并按多个选择分组而不输出空?

mysql - Inner Join 2个表多个结果

mysql - 带有子查询的 HAVING 子句中使用的非分组字段

MySQL:使用有序月份使用 GROUP BY 计算运行总计

python - 使用原始索引获取 Pandas 重复行数

mysql - 如何连接两个表以获得 where 查询的计数

PHP pdo bindParam 类型管理

php - 最优化的 MySQL 语法

php - ID 不等于正在查看的当前产品 ID - Laravel 5.2