私はあなたが望むと信じています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')
編集より慎重に仕様をまとめましょう。
まず、すべての販売店で古いリードを持つすべての顧客を除外します。「Stale」とは、4 月 1 日より前を意味します。
2 つ目は、4 月 1 日の最初の 1 秒から 4 月 6 日の最初の 1 秒までの間にリードが生成されたディーラーの特定のリストにすべての顧客を含めることです。date
列が実際にタイムスタンプである場合、これは 4 月 6 日のほぼすべてを除外することに注意してください。
最後に、ユニークな顧客を数えます。これは、特定の販売店で特定の日付範囲に見られるすべての新規顧客を必要とするように思われます。
これをどのようにトラブルシューティングしますか? 2 つの基準セットを別々に実行するのはどうですか?
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
これらの結果を調べます。あなたの問題が見つかるかもしれません。