1、group by语句
select userid,date_format(paytime,'%Y-%m-%d')
from dash.order_info
where userid is not null
group by
userid,date_format(paytime,'%Y-%m-%d');
group by A ,B;
a、select查询后面确定的字段,只能是group by后面出现的字段,和计数项。
b、gruop by A,B;
先按照A来做一次分组【相当于把原始数据分成n组,此时可以进行任何字段的count/sum动作,包含本身】,
在A分组的基础上,进行类别系划,再次分组,第二次分组,条件是B;
eg,a分组后,结果是独立用户数,b是把系划,独立用户数,哪几个月发生购买行为。
c、is not null 限制条件有is
*************************************************************************************************************************************
group by 可以对by后的分组字段进行计算count(),和excel的透视表一样,即使标签,又是计数项
可以来计算当月的复购率【第一行的count和sum等价】
select count(userid),count(if(a >1,1,null)) as 重复购买-- 此时等价sum(if(a>1,1,null)
from (
select userid,count(userid) as a -- count()可以用任何字段,因为在此时分组中都含有所有字段,
from
star.order_info
where paytype='已支付' and month(paytime)=3
group by userid) as t;