【发布时间】:2014-01-05 00:00:50
【问题描述】:
我有一个表交易,我试图找出给定月份的新客户。这意味着如果客户在当月之前的时间内没有交易,他/她将被视为新客户。
我已经找到了一种方法,但它的效率非常低,而且需要很长时间。然后我遇到了这个artikel,它比较了不同的方法。我试图将这种方法调整为我的方法,但没有成功。
可视化我的问题:
|--------------------------- time period with all transactions -----------------------|
|----- period before month transactions = 0) ---|---- curr month transactions > 0 ----|
表格如下所示:
transactions
id, email, state, date_paid
我的查询:
SELECT
l.email
FROM
transactions as l
LEFT JOIN transactions as r ON r.email = l.email
WHERE
r.email IS NULL
AND l.state = 'paid'
AND r.state = 'paid'
AND l.date_paid <= '2013-12-31 23:59:59'
AND r.date_paid < '2013-12-01 00:00:00'
我做错了什么?
【问题讨论】:
标签: mysql sql select left-join where-clause