答案 0 :(得分:1)
这样做的一种方法是加入子查询,查找每个客户的最新购买日期。
SELECT t1.*
FROM yourTable t1
INNER JOIN
(
SELECT client_id, MAX(purchase_date) AS max_purchase_date
FROM yourTable
GROUP BY client_id
) t2
ON t1.client_id = t2.client_id AND
t1.purchase_date = t2.max_purchase_date
-- WHERE client_id = 1
答案 1 :(得分:0)
这就是你想要的吗?
SELECT Id, `client id`, MAX(`date of purchase`)
FROM your_db
WHERE `client id` = 1
此外,如果您只想返回1行,那么
{{1}}
答案 2 :(得分:0)
SELECT id, client_id, DATE_OF_PURCHASE
FROM purchasing
GROUP BY DATE_OF_PURCHASE
HAVING MAX(DATE_OF_PURCHASE)
尝试以上代码。
希望这会有所帮助。
答案 3 :(得分:0)
如果你想要整行,你可以用几种方式做到这一点,但想想“过滤”而不是“聚合”:
select t.*
from t
where (client_id, date_of_purchase) in (select client_id, max(date_of_purchase)
from t
group by client_id
);
当然,有很多方法可以表达类似的逻辑。 。 。将=
与相关子查询exists
或join
与聚合查询结合使用。