我有一个这样的表:
.--------------------------------.
| Name | XX | Date |
.--------------------------------.
| N1 | 5 | 2009-05-01 |
| N1 | 10 | 2008-01-08 |
| N2 | 8 | 2009-02-02 |
.________________________________.
我的结果应该是这样的:
.------------.
| Name | XX |
.------------.
| N1 | 5 |
| N2 | 8 |
.____________.
我只想要按名称分组的行,但只需要最新的行。我不想要此示例中 XX=10 的行,因为日期 2009-05-01 > 2008-01-08。
我不知道如何按日期排序和分组:(
最佳答案
你想要分组做什么?
select Name, XX
from yourTable t1
where Date = (select MAX(Date)
from yourTable t2
where t1.Name = t2.Name)
如果您需要对最后一天的 XX 求和,则:
select Name, SUM(XX)
from yourTable t1
where Date = (select MAX(Date)
from yourTable t2
where t1.Name = t2.Name)
group by Name
关于sql - 带有分组依据和排序依据的mysql查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1236003/