MySQL:获取GROUPBY查询中未分组列的最后一个值

MySQL:获取GROUPBY查询中未分组列的最后一个值,mysql,magento,magento2,Mysql,Magento,Magento2,我运行下面的查询来连接两个表并选择一些列。有多个points_balance的值,但当我进行分组时,我得到了points_balance的第一个值(这似乎是默认值)。用例是获取points_balance的最后一个值,它将是我案例中的最新值 下面的查询需要哪些更新?短暂性脑缺血发作 SELECT DATE(main_table.created_at) AS period, main_reward.customer_id, main_reward.website_id, SUM(IF(points

我运行下面的查询来连接两个表并选择一些列。有多个points_balance的值,但当我进行分组时,我得到了points_balance的第一个值(这似乎是默认值)。用例是获取points_balance的最后一个值,它将是我案例中的最新值

下面的查询需要哪些更新?短暂性脑缺血发作

SELECT DATE(main_table.created_at) AS period, main_reward.customer_id,
main_reward.website_id,
SUM(IF(points_delta > 0, points_delta, 0 )) AS points_added,
SUM(IF(points_delta < 0  && is_expired = 0, ABS(points_delta), 0 )) AS points_used,
SUM(IF(points_delta < 0 && is_expired = 1, ABS(points_delta), 0 )) AS points_expired,
main_table.points_balance
FROM magento_reward_history AS main_table
INNER JOIN magento_reward AS main_reward ON main_table.reward_id = main_reward.reward_id
GROUP BY period, customer_id, website_id
选择日期(主表创建时间)作为期间,主表奖励。客户id,
main_reward.website_id,
总和(如果(点增量>0,点增量,0))作为点增量,
总和(如果(点δ<0&&isδexpired=0,ABS(点δ),0))作为点δ使用,
总和(如果(点δ<0&&is_expired=1,ABS(点δ),0))作为点δexpired,
主表点平衡
从magento_奖励_历史作为主_表
内部加入magento_奖励作为主表上的主奖励。奖励id=主奖励。奖励id
按期间、客户id、网站id分组
带有一些测试数据的表架构包括:

magento\u奖励

奖励id 客户识别码 网站id 积分与余额 网站\货币\代码 75505 218501 1. 71
请参阅:@草莓谢谢,更新了表模式和示例数据我再次向您推荐我之前的评论