如何使用SQL仅选择最近的每个组?

时间:2017-01-22 20:23:32

标签: mysql sql greatest-n-per-group

我有下表:

TABLE sales_view
| id | name | date       | amount |
|----|------|------------|--------|
|  4 | Mike | 2016-12-19 |  78.48 |
|  5 | Will | 2016-12-19 | 175.26 |
|  7 | John | 2016-12-23 |  13.48 |

我正在尝试创建一个视图,该视图将按名称列进行分组,并仅返回最多重新发送的数量。它应该是这样的:

{{1}}

我不确定如何制作这个。我想我会需要子查询,但我知道如果你试图在视图中使用它们,SQL就会生气。

1 个答案:

答案 0 :(得分:2)

您可以使用元组和子查询与group by for max(date)

 select * from sales
 where (name, date) in ( select name, max(date) 
                         from sales 
                         group by name)