2016-11-11 4 views
0

私は、日付フィールドとcustomer_idの2つのフィールドしか持たないテーブルを持っています。私は、各日付フィールドから現在の日付までの顧客IDの数を数えたいと考えています。以下のクエリはタイムアウトしています。非常に非効率的です。これを行うより良い方法はありますか?2つの日付の間のユーザーのカウント

select 
    t.base_date, 
    (select 
     count(distinct customer_id) 
    from user_base as ub 
    where ub.base_date >= t.base_date 
    and ub.base_date <= current_date 
) as cts 
from user_base as t 

答えて

1

これはあなたにテストされていない同じ結果が得られますが、あなたは、データを抽出方法がやっての正しい方法はなかったと思われる場合は試してみてください:

select base_date, count(distinct customer_id) as cts 

from user_base 

where base_date between base_date AND current_date 
+0

は美しく働きました。私はそのような単純なクエリを複雑にすることは信じられません。ありがとうございました。 – user2022284

関連する問題