2017-10-12 11 views
0

レコードを削除または更新しないテーブルでアクティブなユーザーの数を取得しようとしていますが、テーブルに追加して最後のエントリが最も有効であると仮定します。しかし、歴史的なカウントのためには、私は毎日の活動のカウントが必要です。以下のデータを持つ指定した日付の最後のエントリを選択する方法

-------------------------------------- 
id | user_id | type | date 
-------------------------------------- 
1 sam  New  2017-10-10 
2 john  New  2017-10-12 
3 sam  Change 2017-10-14 
4 sam  Cancel 2017-10-15 

を私が日付で持っていたどのように多くの「アクティブ」ユーザー、カウントできるようにする必要があります。私はcalendar_tableを持っていると様々な提案を試みたが、それが正しいように見えることはできません

--------------------- 
Date  | Active 
--------------------- 
... 
2017-10-08 0  <-- Prior there were none 
2017-10-09 0 
2017-10-10 1 
2017-10-11 1  <-- Fill-in dates 
2017-10-12 2  <-- Cumulative adding 
2017-10-13 2 
2017-10-14 2  <-- A change is irrelevant 
2017-10-15 1  <-- A Cancel should decrease the count 

:私は何を得るために期待していことなど、何かあります。

+0

https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-aを参照してください-very-simple-sql-query – Strawberry

+0

私たちに出発点を与えてください。あなたが試したことを私たちに教えてください。 –

答えて

0
SELECT date, COUNT(DISTINCT user_id) AS active FROM data GROUP BY date; 

達成したいことはありますか?非常に簡単に聞こえるが、多分私はあなたの質問を誤解...

UPDATE

また、私はあなたがすべての日付を含む別のテーブル「日付」を必要とします。このように:

--------------------- 
Date  
--------------------- 
... 
2017-10-08 
2017-10-09 
2017-10-10 
2017-10-11  
2017-10-12 
2017-10-13 
2017-10-14 
2017-10-15 

次に、私の答えの先頭にあるSQLクエリで得られる結果に左/右ジョインを実行する必要があります。

SELECT dates.date, COALESCE(result.active, 0) 
FROM dates 
LEFT JOIN (
    SELECT date, COUNT(DISTINCT user_id) AS active 
    FROM data 
    GROUP BY date 
) AS result ON dates.date = result.date 

そして結果は次のようになります。

--------------------- 
Date  | Active 
--------------------- 
... 
2017-10-08 0 
2017-10-09 0 
2017-10-10 1 
2017-10-11 1 
2017-10-12 2 
2017-10-13 2 
2017-10-14 2 
2017-10-15 1 

COALESCEは、私は自分の携帯電話に答えています0

null年代に取って代わるので、私は私のクエリの妥当性をチェックしていません。しかし、あなたは私の考えを持っています

+0

あなたは1人のユーザが2つ以上のエントリを持つかもしれないという事実を考慮しなかったので、max()か何かをする必要があります。 – smorhaim

+0

これはありません。それは日付でグループ化されています –

+0

とにかく、私はまだそれをチェックしていません –

関連する問題