我相信你想要SELECT COUNT(DISTINCT customer_number)
试试这个查询
SELECT COUNT(DISTINCT customer_number)
FROM leads
WHERE ( dealer_id = '75'
OR dealer_id = '76'
OR dealer_id = '77'
OR dealer_id = '78'
OR dealer_id = '70'
OR dealer_id = '2692'
OR dealer_id = '2693' )
AND date BETWEEN '2013-04-01' AND '2013-04-06'
AND customer_number NOT IN (SELECT customer_number
FROM leads
WHERE date < '2013-04-01')
编辑让我们更仔细地整理您的规范。
首先,排除在任何经销商处拥有陈旧线索的所有客户。“陈旧”是指在四月初之前。
其次,将在 4 月 1 日第一秒至 4 月 6 日第一秒之间产生潜在客户的特定经销商列表中的所有客户包括在内。date
请注意,如果您的列实际上是时间戳,则这几乎不包括 4 月 6 日的所有时间。
最后计算唯一客户。这似乎需要在特定经销商的特定日期范围内看到所有新客户。
您将如何解决此问题?分别运行这两组标准怎么样?
SELECT customer_number
FROM leads
WHERE customer_number NOT IN (SELECT customer_number
FROM leads
WHERE date < '2013-04-01' )
您是否获得了您想要的客户列表(要包括的客户)?
接下来试试这个
SELECT customer_number
FROM leads
WHERE ( dealer_id = '75'
OR dealer_id = '76'
OR dealer_id = '77'
OR dealer_id = '78'
OR dealer_id = '70'
OR dealer_id = '2692'
OR dealer_id = '2693' )
AND date BETWEEN '2013-04-01' AND '2013-04-06'
或者,对于性能和准确的日期时间匹配更好,这:
SELECT customer_number
FROM leads
WHERE dealer_id IN ( '75','76', '77', '78','70','2692','2693' )
AND date >= '2013-04-01'
AND date < '2013-04-06'+ INTERVAL 1 DAY
检查这些结果。你可能会发现你的问题。