如何计算某个用户在某个日期做出多个订单的订单记录?

时间:2018-07-25 10:26:46

标签: mysql

您好,我正在尝试统计一个月内(例如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,这意味着在2017年1月2日已经对user_id 12进行了订购,因此订购表3和4中的id是我需要计算的记录。 然后汇总总记录

我认为我需要首先获取订单记录,然后使用某些user_id重新查找订单记录。但是我被困住了 有没有办法完成这项任务? 谢谢

1 个答案:

答案 0 :(得分:2)

使用聚合函数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