2

基本的に、日付スタンプを使用してユーザーとアクティビティの数を追跡するテーブルがあります (InfoBright 列型ストレージを使用しており、MySQL Workbench をインターフェイスとして使用しています)。日毎の集計表です。スキーマは基本的に

ユーザー ID (整数)
activity_count (整数)
日付(日付)

私が見つけようとしているのは、毎月のアクティビティ数が合計で 10 を超えるユーザーとして定義されたアクティブ ユーザーの基準で、月ごとにチャーンしているユーザーの数です。

現在使用している特定の月にアクティブなユーザーの数を確認するには

ユーザーとして年、月、カウント (個別のユーザー) を選択します
から
(
年として YEAR(date)、月として MONTH(date)、ユーザーとして userid、アクティビティとして sum(activity_count) を選択します
テーブルから
YEAR(日付)、MONTH(日付)、ユーザーIDでグループ化
10以上の活動がある
YEAR(日)、MONTH(日)順
) t1
年、月ごとにグループ化

SQL の専門家ではありませんが、これは改善できると確信しており、それに関する意見をいただければ幸いです。

ただし、私のより大きな目標は、このカウントに含まれる新規ユーザーまたは前月からのリピート ユーザーの数を月ごとに把握することです。醜い入れ子や結合のように感じずにそれを行う方法がわかりません。かなり単純であるべきだと思います。

前もって感謝します。

4

1 に答える 1

0

これを達成するには、さらにネストすることが最善の方法だと思います。ユーザーがアクティブになった最初の月を確立できるように、上記の中間層 (つまり、外部クエリと内部クエリの間) として連結された最小の年と月のユーザーを選択するようなことを行います。次に、外側のクエリに where 句を追加してフィルター処理し、必要な月のみが表示されるようにします。構文についてサポートが必要な場合はお知らせください。

于 2013-06-24T19:36:31.437 に答える