如何获取其用户ID已下达1个以上订单的订单记录

时间:2018-07-25 12:02:20

标签: mysql

您好,我正在尝试统计一个月内(例如2018-01-01至2018-02-01)完成一个以上订单的用户的订单记录。

Order table
id   user_id   date
1    12        2017-01-02  <- first order(no count)
2    23        2018-01-03  <- second order(count)
3    12        2018-01-04  <- second order(count)
4    12        2018-01-08  <- third order(count)
5    23        2017-11-02  <- first order(no count)
6    11        2018-01-01  <- first order(no count)
....

User table
id
11
12
23
....

输出

 date     count(*)
 2018-01-01     3

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

1 个答案:

答案 0 :(得分:1)

如何?

select count(*) from 
(select user_id, count(*)
from `Order`
where date >= '2018-01-01' and date < '2018-02-01'
group by user_id
having count(*) > 1) users_w_multiple_orders;

having命令是从sum之类的聚合中过滤结果的方式。完成后,您可以计算该查询的结果。