求找出代码问题

jereco 2019-10-31 05:58:09
需求是19年各月份的ytd新客数及复购数,
我写的这段就是以是否当月购买来算新客--即c1,以是否购买日大于19年1月且当月复购来算复购数--即c2
出来c1、c2 数是一样的,不知道为什么,求指导
第一次这样用case when,不确定是否能用,然后这个系统用不了convert、month各种日期公式所以用了left截取
以下:
select
left(order_date,7),
count(case when left(order_date,7)=left(firstdate,7) then 1 else 0 end)c1,
count(case when left(order_date,7)=left(firstdate,7) and left(order_date,9)>left(firstdate,9) and firstdate>'2019-01-01'then 1 else 0 end)c2
from (
select t1.member_id,order_date,firstdate
from puman_prod.t_retailorder t1
left join (
select member_id,min(order_date)firstdate
from puman_prod.t_retailorder
group by member_id)t2
on t1.member_id = t2.member_id
where order_date>='2019-01-01')t1
group by left(order_date,7)

...全文
98 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
jereco 2019-11-05
  • 打赏
  • 举报
回复
引用 3 楼 RINK_1 的回复:
[quote=引用 2 楼 weixin_45529312 的回复:] [quote=引用 1 楼 RINK_1 的回复:] COUTN改成SUM 还有,你C2是不是应该left(order_date,7)>left(firstdate,9) and firstdate>'2019-01-01',就是不知道你这个“当月”的概念是怎么定义的。
尴尬 好像是改成sum就可以了。。 C2的 left(order_date,7)=left(firstdate,7)就是月份相同,,格式是“2019-10-01 00:00:00"; left(order_date,9)>left(firstdate,9) 因为是求当月复购,一天多单算一单,如果有多次购买就统计; [/quote] 我有些明白了,当月复购就是是新客,且除第一天以外的购买。[/quote] 对的哈,登陆频率额略低,结帖了
RINK_1 2019-11-01
  • 打赏
  • 举报
回复
引用 2 楼 weixin_45529312 的回复:
[quote=引用 1 楼 RINK_1 的回复:] COUTN改成SUM 还有,你C2是不是应该left(order_date,7)>left(firstdate,9) and firstdate>'2019-01-01',就是不知道你这个“当月”的概念是怎么定义的。
尴尬 好像是改成sum就可以了。。 C2的 left(order_date,7)=left(firstdate,7)就是月份相同,,格式是“2019-10-01 00:00:00"; left(order_date,9)>left(firstdate,9) 因为是求当月复购,一天多单算一单,如果有多次购买就统计; [/quote] 我有些明白了,当月复购就是是新客,且除第一天以外的购买。
jereco 2019-11-01
  • 打赏
  • 举报
回复
引用 1 楼 RINK_1 的回复:
COUTN改成SUM 还有,你C2是不是应该left(order_date,7)>left(firstdate,9) and firstdate>'2019-01-01',就是不知道你这个“当月”的概念是怎么定义的。
尴尬 好像是改成sum就可以了。。 C2的 left(order_date,7)=left(firstdate,7)就是月份相同,,格式是“2019-10-01 00:00:00"; left(order_date,9)>left(firstdate,9) 因为是求当月复购,一天多单算一单,如果有多次购买就统计;
RINK_1 2019-10-31
  • 打赏
  • 举报
回复
COUTN改成SUM 还有,你C2是不是应该left(order_date,7)>left(firstdate,9) and firstdate>'2019-01-01',就是不知道你这个“当月”的概念是怎么定义的。

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧