我有一个客户订单表,该表类似于下面:检查特定的ID的出现一行之前在表
order_id | customer_id | date | ...
-----------------------------------------
583 192 2015-05-01 ...
734 143 2015-06-04 ...
801 455 2015-07-02 ...
... ... ... ...
我想找到我多少新客户获得在特定的月份 。通过查询上面的订单表并找到当月出现但在该月之前没有出现的值(在该月之后没有问题),可以找到新客户。我正在寻找新的customer_id
的第一个实例。
有没有办法在一个SQL语句中做到这一点?我可以做类似下面我想:
- 通过查询使用
LIKE YYYY-MM-%
- 检查表与
customer_id
实例较小order_id
(按理说一个较小的数据库得到了一个月的所有order_id
和DISTINCT customer_id
order_id
将早期命令) - 如果找到,则跳过
- 如果没有找到,递增计数器
哪个db引擎? – user2407394
你想要独特的用户,你不需要循环所有的结果只是使用group by并获得唯一的结果。同样,你只是数它们,所以如果你计算第一个或后一个数,那么它确实没有什么区别,只需要计数独特的数。 –