Data Explorer を最新バージョンにアップデートしたばかりですが、この問題はまだ発生しています。\n\nData Explorer プラグインには、クエリをグループに公開する機能があります。私は、ユーザーが訪問日数のバッジにどれだけ近いかを知りたがっているため、連続訪問日数をカウントするクエリを公開しました。\n\n
--[params]
-- string :username
-- int :min_days = 10
WITH consecutive_visits AS (
SELECT user_id,
visited_at,
-- s の値は連続する日の各グループで同じになります
visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
FROM user_visits
WHERE user_id = (SELECT id FROM users WHERE username = :username)
)
SELECT
MIN(visited_at) period_start,
COUNT(*) AS consecutive_days,
MAX(visited_at) period_end
FROM consecutive_visits
GROUP BY user_id, s
HAVING COUNT(*) >= :min_days
ORDER BY period_start DESC
Isaac が確認している間、楽しい追加のヒントとして、user_id パラメータを使用して、かっこいい自動補完パラメータボックスを取得することもできます。例:
-- [params]
-- user_id :user
-- int :min_days = 10
WITH consecutive_visits AS (
SELECT user_id,
visited_at,
-- s の値は連続する日の各グループで同じになります
visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
FROM user_visits
WHERE user_id = :user
)
SELECT
MIN(visited_at) period_start,
COUNT(*) AS consecutive_days,
MAX(visited_at) period_end
FROM consecutive_visits
GROUP BY user_id, s
HAVING COUNT(*) >= :min_days
ORDER BY period_start DESC