我正在尝试创建一个执行以下操作的SQL语句,但显然会失败。复杂SQL选择语句
选择来自它基于下面的准则的视图和过滤器的所有信息:
- 如果给定的字段“CUSTOMER_NUMBER”存在于表格中的任何点
- 然后检查内的任何重复最近30天
- 然后输出按客户编号分组的所有不同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
我已经融化我的大脑试图找出如何或者如果这甚至有可能做一个查询任何帮助将不胜感激!
如何选择日期 - 是否总是选择MIN()? – sgeddes
@sgeddes日期应该是它第一次出现在表格中。 – bmanhard