MySQL查看按顺序执行分组

时间:2013-10-14 20:10:46

标签: 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

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

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

MySQL不允许在视图中按顺序执行子查询,当我使用子查询的其他视图时,该组忽略子查询中的顺序。

以下查询返回预期结果:

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

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

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;

还有其他解决方案吗?

2 个答案:

答案 0 :(得分:3)

这应该对你有用

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

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

答案 1 :(得分:1)

选择id,max(日期) 来自your_table 按ID分组