mysql 查询用户数_MySQL:查询每月新增用户数

(4399的)一道大题,直接在网页上写。又不能调试 -_-! 简直…

1. 设计一张表t,有如下字段。

用户名,密码,性别,年龄,注册时间。

2. 统计每个月新增的年龄大于18岁的男性用户。

纯SQL查询

可以写一段很长的SQL语句出来,但太麻烦。如果能创建视图,就很好了。

第一步,建视图。

根据第1个问题的表,可以造一张这样的表出来。

m (时间)

num (成年男性用户总数)

2017-01

34

2017-02

46

… create view xxx as (xxx);

SELECT CONCAT(YEAR(t.m),MONTH(t.m)) AS m, COUNT(*) as num FROM t WHERE 条件

GROUP BY YEAR(t.m), MONTH(t.m);

第二步,自连接。

SELECT STR_TO_DATE(CONCAT(YEAR(t1.m),MONTH(t1.m)+1), '%Y%m') AS 时间,

t2.num-t1.num AS 新增人数 FROM t t1, t t2

WHERE CONCAT(YEAR(t1.m),MONTH(t1.m)+1) = CONCAT(YEAR(t2.m),MONTH(t2.m));

Python操作

新增3列,一列是年份,一列是月份,最后一列是 “年月”

然后df2 = df1.groupby('年月').sum()['人数']

再df1['人数'].diff()即可…

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值