我正在尝试从数据库中获取每个客户的最新交易,其中每个客户可能有不同数量的交易记录。
在这里Mysql表:
这张表我已经提到了有粗体(样式)的行,这些粗体行是最后的交易记录。我想要每个客户的最后交易。
我除了答案是下面的一个。
我需要mysql查询这个选定的记录。
发布于 2014-05-21 19:43:37
您需要获取交易日期的MAX
来查找最近的交易。因为这是一个聚合函数,所以您还需要GROUP BY
您的cus_id
。然后,此结果将为您提供客户的最新日期,以便您可以根据该cus_id
和tranc_date
组合连接其余数据。
查询将如下所示:
SELECT cus_tranc.cus_id,
cus_tranc.tranc_amt,
cus_tranc.tranc_type,
cus_tranc.tranc_date
FROM cus_tranc
INNER JOIN (
SELECT cus_id,
MAX(tranc_date) AS 'tranc_date'
FROM cus_tranc
GROUP BY cus_id) max_tranc ON cus_tranc.cus_id = max_tranc.cus_id AND cus_tranc.tranc_date = max_tranc.tranc_date
您可以在this SQL Fiddle中查看此操作的结果。
发布于 2014-05-21 19:38:08
SELECT cus_id,
tranc_amt,
tranc_type,
MAX(tranc_date) AS 'tranc_date'
FROM cus_tranc
GROUP BY cus_id
ORDER BY MAX(tranc_date)
发布于 2018-07-06 07:48:45
SELECT cus_id,tranc_amt,tranc_type,tranc_date
FROM cus_tranc
WHERE tranc_date IN (SELECT MAX(tranc_date)
FROM cus_tranc
GROUP BY cus_id);
https://stackoverflow.com/questions/23782011
复制相似问题