30 日間のユニーク アカウントの合計数を計算したいと思います。私が MySQL (InfiniDB) で使用しているエンジンは、等値条件でのテーブルの結合のみをサポートしているようです。
私のテーブルは次のようになります。
sessions (date_id, account_id) =
{ '2013-07-07', 5
'2013-07-07', 5
'2013-07-07', 1
'2013-07-08', 3
'2013-07-09', 3
}
私の現在のクエリは次のようになります。
SELECT
date_id, (
SELECT COUNT(DISTINCT account_id)
FROM sessions t2
WHERE t2.date_id BETWEEN DATE_SUB(t1.date_id, INTERVAL 30 DAY) AND t1.date_id
) cnt
FROM sessions t1
GROUP BY date_id
等結合のみがサポートされているため、BETWEEN
演算子はテーブルを結合するために機能しません。
どんな助けでも大歓迎です:)