您好,我正在尝试统计一个月内(例如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重新查找订单记录。但是我被困住了 有没有办法完成这项任务? 谢谢
答案 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
之类的聚合中过滤结果的方式。完成后,您可以计算该查询的结果。