我有此查询和子查询,我想知道是否有可能避免使用子查询。
如您所见,我需要将用户一天中获得的最高得分之间的最大值相加100。
然后,我需要将所有工作日的总积分相加。
SELECT sum(daily_points) as total
FROM (
SELECT LEAST(SUM(points.value), 100) AS daily_points
FROM points
WHERE user_id = 1234
AND points.type = 'bonus'
GROUP BY DATE(points.created)
) AS points_sum;
我不知道是否可以对单个查询执行此操作,因为我需要先对寄存器进行分组,然后再对其求和。
另外,我尝试在子查询上使用ROLLUP,但是它不起作用,因为只有在积分不高于100的情况下,我才必须将一天中完成的积分相加。
预先感谢大家的帮助。
最佳答案
恐怕子查询是这里的正确方法。
关于mysql - MySQL:我需要在GROUP BY记录后求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30477853/