0

これは私が持っているものです...

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')  

私は基本的に、customer_number が日付範囲間で 1 回だけカウントされるだけでなく、customer_number がテーブルの残りの部分に含まれていない select count を実行する必要があります。

上記のクエリはゼロを返します。

4

3 に答える 3

1

または多分...

 SELECT COUNT(DISTINCT customer_number)
   FROM leads
   LEFT 
   JOIN leads xleads
     ON xleads.customer_number = leads.customer_number
    AND xleads.date < '2013-04-01'
  WHERE leads.dealer_id IN(75,76,77,78,70,2692,2693)
    AND leads.date BETWEEN '2013-04-01' AND '2013-04-06'
    AND xleads.customer_number IS NULL;
于 2013-06-24T15:29:30.873 に答える
0

これを試して:

SELECT Count(個別の顧客番号)

于 2013-06-24T15:21:19.760 に答える
0

私はあなたが望むと信じています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

これらの結果を調べます。あなたの問題が見つかるかもしれません。

于 2013-06-24T15:19:36.083 に答える