我正在尝试创建一个执行以下操作但显然失败的 SQL 语句。
从视图中选择所有信息并根据以下条件对其进行过滤:
- 如果给定字段“customer_number”存在于表中的任何位置
- 然后检查过去 30 天内的任何重复项
- 然后输出按 customer_number 分组的所有不同 customer_numbers
- 数一下,这样我就可以看到一个项目被重复了多少次。
因此,使用今天作为我们当前的日期说我的表中有以下数据条目:
customer_number, date
111111, 2013-01-01
111111, 2013-05-05
222222, 2013-01-07
222222, 2013-03-19
333333, 2013-05-15
333333, 2013-05-30
我希望我的 SELECT 语句返回以下内容:
customer_number, date, count
111111, 2013-01-01, 2
333333, 2013-05-15, 2
并且客户 222222 不会显示,因为他在过去 30 天内没有出现。
这就是我试图弄清楚这一点的程度。它只返回当前月份的数据。
SELECT *, COUNT(customer_number)
FROM red_flags
WHERE dealer_id = '75' AND date BETWEEN CURDATE() - INTERVAL 30 DAY AND CURDATE()
GROUP BY customer_number
HAVING COUNT(customer_number) > 1
我一直在试图弄清楚如何或是否可以在查询中做到这一点,任何帮助都将不胜感激!