我有这样的表:

.--------------------------------.
| 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

其他提示

SELECT Name, XX FROM myTable GROUP BY Name ORDER BY Date DESC

您可能需要把周围的日期字段报价

`Date`

很抱歉,但这些2都是错误的。

您应该

SELECT Name, XX
 FROM t1
 JOIN (SELECT Name, max(date)
        FROM t1
        GROUP BY Name) subquery
   ON t1.Name = subquery.Name AND t1.Date = subquery.Date

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top