mysql - 怎么写这个分组sql
问题描述
有两个表,一个用户充值表
CREATE TABLE user_recharge
(user_id
int(10) NOT NULL DEFAULT '0' COMMENT '用户ID',amount
int(10) NOT NULL DEFAULT '0' COMMENT '充值金额',create_time
datetime NOT NULL COMMENT '创建时间',
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='';
一个用户登录表
CREATE TABLE user_login
(user_id
int(10) NOT NULL DEFAULT '0' COMMENT '用户ID',create_time
datetime NOT NULL COMMENT '创建时间',
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='';
怎么查出每天的登录用户一共充值的金额?
比如
user_recharge
user_id amount create_time
10001 100 2017-08-04 12:00:05
10002 100 2017-08-04 12:00:05
10002 100 2017-08-05 12:00:05
10003 100 2017-08-05 12:00:05
user_login
user_id create_time
10001 2017-08-04 12:00:05
10002 2017-08-05 12:00:05
10003 2017-08-05 12:00:05
结果应该是
2017-08-04 100
2017-08-05 200
因为2017-08-04,10001登录了,充值了100
2017-08-05,10002, 10003登录了,一共充值了200
求助这个sql怎么写。
我比较好奇你充值表里面10002在4号没有登录怎么充值的100
以下sql只为取出你要的结果:
select left(b.create_time,10) dt,sum(a.amount) sm
from user_recharge a
join user_login b
on a.user_id=b.user_id
and left(a.create_time,10)=left(b.create_time,10)
group by dt;
这篇关于mysql - 怎么写这个分组sql的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!