左连接同一张表 左表以userId分组 取出max(create_date) 最大时间的那一条
右表与之连接 通过 userid 和 create_date 连接
sum求和后数据不对
SELECT
sum(t.total_money) as money
FROM
(
SELECT
member_id,
max(create_date) AS create_date
FROM
member_balnace
WHERE 1=1
GROUP BY
member_id
) a
LEFT JOIN member_balnace t ON t.member_id = a.member_id
AND t.create_date = a.create_date
WHERE t.total_money > 0
求和数据为130亿
不确定表结构及数据情况。请先确认表中数据情况,确认一下表中相同member_id,create_date,是否包含多条记录,虽然max(create_date)是一个值,但表中create_date=max(create_date)的可能存在多条记录。最好能提供表结构及样例数据。
SELECT
member_id,
create_date,
count(*)
FROM
member_balnace
GROUP BY
member_id,create_date
根据member_id,create_date分组count(*)可能是大于1的。