MYSQL组和订单查询

时间:2013-11-03 09:00:22

标签: mysql

我有一张包含姓名和订单日期的表格。我试图提出一个查询,以显示每个名称的最后一次以相反的顺序排序。因此,每个订单都是最新订单,但按最早订购的名称排序。

所以这个数据

Tom,10/01/2013  
Bob,09/24/2013  
Tom,11/03/2013  
Tom,10/24/2013  
Bill,11/01/2013  
Bob,10/22/2013  

我想要这个

Bob,10/22/2013  
Bill,11/01/2013  
Tom,11/03/2013  

我试过SELECT * from orders group by name order by -odate 无论是随机的还是比最新的日期更老的 然后我尝试了SELECT * from orders order by -odate group by name 认为它会先排序,但它什么都没有返回

由于 编

3 个答案:

答案 0 :(得分:1)

SELECT name, MAX(odate) odate FROM orders GROUP BY name ORDER BY odate

答案 1 :(得分:0)

尝试将MAX功能用于日期列

SELECT name, MAX(odate) from orders group by name order by odate

答案 2 :(得分:0)

这里的关键是GROUP BY名称,但要选择所需的最大值。

分组时,您可以在其他字段上执行范围功能。

使用ORDER BY DESC放置最新的第一个。

SELECT name, MAX(odate) AS odate FROM orders GROUP BY name ORDER BY odate DESC

请参阅SQL Fiddle