特定の日付範囲で保持しているユーザーの数を選択しようとしていますが、このクエリと以下の表を使用して成功しました:
+----------+-------------+
| Field | Type |
+----------+-------------+
| id | varchar(17) |
| log_date | date |
+----------+-------------+
SELECT last_day.log_date, COUNT(distinct last_day.id) as users_num
FROM (SELECT DISTINCT log_date, id
FROM `userActivity`) this_day
JOIN (SELECT DISTINCT log_date, id
FROM `userActivity`) last_day
ON this_day.id = last_day.id
AND this_day.log_date = "2018-10-01"
AND last_day.log_date BETWEEN "2018-10-01" AND "2018-10-30"
GROUP BY log_date;
しかし、私が直面している問題は、日付範囲の毎日が0日目であると仮定したいということです(次の例と同様):
写真の最初の行は、計算する必要がある以下の結果の平均であることに注意してください。写真のような結果を得るためにクエリを強化する方法を知っている人はいますか?