如何统计用户在某个日期多次下单的订单记录? [复制]

Posted

技术标签:

【中文标题】如何统计用户在某个日期多次下单的订单记录? [复制]【英文标题】:How to count order records which user made more than one order in certain date? [duplicate] 【发布时间】:2019-01-02 03:17:38 【问题描述】:

您好,我正在尝试统计一个月内下单不止一个订单的用户的订单记录,例如 2018-01-01 到 2018-02-01。

Order table
id   user_id   date
1    12        2017-01-02
2    23        2018-01-03
3    12        2018-01-04
4    12        2018-01-08
....

User table
id
12
23
....

我需要的是某个月份的一些订单记录

输出

输出应该是 2,这意味着 user_id 12 已经在 2017 年 1 月 2 日下订单,所以订单表 3 和 4 中的 id 是我需要计算的记录。 然后总结总记录

我想我需要先获取订单记录,然后使用特定的 user_id 再次查找订单记录。但我被困住了 有没有办法完成这个任务? 谢谢

【问题讨论】:

“我需要的是某个月的订单记录数”...每个用户,还是总数?您在问题的其余部分中提到了用户,但随后在需求陈述中省略了他们?另外,到目前为止,您尝试过什么? COUNT()、GROUP BY 和 MONTH() 或 MONTHNAME() 都是你的朋友。 @ADyson 总计 那么“用特定的user_i再次查找订单记录”是从哪里来的呢?不确定我是否关注你。也许最好给我们一个你预期输出的例子,那么我们就 100% 清楚了。另请参阅上面我编辑的评论。你应该能够自己研究这个,至少尝试一些事情。如果网上还没有非常相似的例子,我会感到惊讶,甚至可能在这个网站上过去的问题中。 @ADyson 我刚刚更新了我想要的输出 所以实际上要求是“找到我 2018 年 1 月用户 12 的订单总数?” ?那是对的吗?老实说,您的问题和 cmets 中的措辞有点矛盾。请尝试 100% 清楚查询条件实际上是什么。不过,我很确定您只需要一个查询即可完成此操作。就像我说的,了解 GROUP BY 查询。 【参考方案1】:

使用聚合函数countgroup by

  select u.id,count(*) from Order as O inner join user as u
    on O.user_id= u.id

    where date>='2018-01-01' and date <'2018-02-01'
    group by u.id
    having count(*)>1

http://sqlfiddle.com/#!9/57c69b/1

【讨论】:

我要查找的是与 sqlfiddle.com 中每一列中的订单记录相加的总记录

以上是关于如何统计用户在某个日期多次下单的订单记录? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

老客复购率powerbi怎么计算

使用构造函数创建MyOrder 订单对象,创建 两个镀锡(orderId,订单编号,下单用户id, 订单价格,下单日期)

使用构造函数创建MyOrder 订单对象,创建 两个镀锡(orderId,订单编号,下单用户id, 订单价格,下单日期)

使用构造函数创建MyOrder 订单对象,创建 两个镀锡(orderId,订单编号,下单用户id, 订单价格,下单日期)

如何优雅地处理用户的误操作引起的多次请求

MySQL活动期间制定月份注册用户下单情况_20160919