“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;
还有其他解决方案吗?
答案 0 :(得分:3)
这应该对你有用
SELECT id, MAX(date) AS date FROM t_example GROUP BY id;
这是使用AS
语法来保持您的列名简洁(否则它将是MAX(date)
)
答案 1 :(得分:1)
选择id,max(日期) 来自your_table 按ID分组