最近有个统计数据的需求:统计每月底累计注册用户数量,我们平时接触多的就是按月进行统计每月的数量,而不是进行累积。

接下来我就使用用户变量实现这个需求。

1.定义用户变量 select @变量名:

    用户变量可以作用于当前整个连接,但是当当前连接断开后,其所定义的用户变量都会消失。用户变量使用如下(这里我们无须使用declare关键字进行定义,可以直接这样使用): select @变量名

对用户变量赋值有两种方式,一种是直接用"="号,另一种是用":="号。其区别在于使用set命令对用户变量进行赋值时,两种方式都可以使用;当使用select语句对用户变量进行赋值时,只能使用":="方式,因为在select语句中,"="号被看作是比较操作符。

SET @var := 0;

   2.使用变量,进行按月累加统计:

SELECT gmt_create,amount,(@var := @var + amount) FROM (
SELECT DATE_FORMAT(gmt_create,'%Y-%m')gmt_create ,SUM(amount) amount
FROM borrow 
GROUP BY DATE_FORMAT(gmt_create,'%Y-%m')
)a

3.运行结果:

 

Logo

更多推荐