Customer table with purchases in a date range
这样做有一些挑战。
- 选择一小时内购买次数超过 2 次的所有客户 从给定的日期时间开始,例如2016-01-01.13:00:00
选择一天内购买次数超过 2 次的所有客户 (24 小时)从给定的日期时间开始,例如。 2016-01-01.15:30:05
Select count(name) from cust_table where count(name) IN (BETWEEN (2016-01-01.13:00:00, 2016-01-01.14:00:00))
最佳答案
您需要获取所有进行过两次以上购买的用户的标识符(用户名或 ID 等)。像下面这样的东西应该有效:
SELECT name FROM purchases GROUP BY name HAVING COUNT(name) > 2
要获取在某些日期之间进行购买的行,只需添加一个 WHERE
子句,这样它就会变成这样
SELECT name FROM purchases WHERE pdate BETWEEN (2016-01-01.13:00:00) AND (2016-01-01.14:00:00) GROUP BY name HAVING COUNT(name) > 2
它的作用是按名称对表行进行分组,其中包含指定日期之间的购买情况。然后,它使用 HAVING COUNT(name) > 2
子句过滤组,以仅检索出现两次以上的行。
关于Mysql 选择在给定日期范围内多次出现的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48989795/