我需要一个帮助来解决这个SQL问题:我有这样的数据集
Customer Field A Date
A y 2015-01-21
A z 2015-02-24
B y 2015-02-01
B g 2015-02-25
C z 2015-02-25
C x 2015-03-27
我想每个客户只能获得一行,而且只有最近的记录。 因此,结果必须是:
A z 2015-02-24
B g 2015-02-25
C x 2015-03-27
我想我需要获得所有客户的DISTINCT,然后在Date字段中使用MAX子句将它们加入到同一个表中。 像这样:
SELECT DISTINCT customer FROM mytable a
INNER JOIN mytable b ON a.customer = b.customer
但我不知道如何继续......
答案 0 :(得分:1)
或使用相关的子查询来查找客户的最大日期:
SELECT *
FROM mytable a
WHERE Date = (select max(Date) from mytable b
where a.customer = b.customer)
答案 1 :(得分:0)
您可以在每个客户的最长日期自行加入
SELECT a.*
FROM mytable a
INNER JOIN
(
select customer, max(date_column) as mdate
from mytable
group by customer
) b ON a.customer = b.customer
AND a.date_column = b.mdate