MySQL:我需要在GROUP BY记录之后使用SUM

时间:2015-05-27 09:06:04

标签: mysql

我有这个查询和子查询,我想知道是否可以避免使用子查询。

正如您所看到的,我需要将用户在一天中得分的最大值与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的情况下,我必须总结在一天内完成的点数。

提前感谢大家的帮助。

1 个答案:

答案 0 :(得分:1)

子查询是正确的方法,我很害怕。