mirror of
https://github.com/discourse/discourse.git
synced 2025-09-06 10:50:21 +08:00
FIX: consecutive_visits query wasn't properly setting 'granted_at' (3rd time's a charm)
This commit is contained in:
parent
afc075d93b
commit
657440b8be
1 changed files with 9 additions and 4 deletions
|
@ -235,15 +235,20 @@ SQL
|
||||||
def self.consecutive_visits(days)
|
def self.consecutive_visits(days)
|
||||||
<<~SQL
|
<<~SQL
|
||||||
WITH consecutive_visits AS (
|
WITH consecutive_visits AS (
|
||||||
SELECT user_id, visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int "start"
|
SELECT user_id
|
||||||
|
, visited_at
|
||||||
|
, visited_at - (DENSE_RANK() OVER (PARTITION BY user_id ORDER BY visited_at))::int s
|
||||||
FROM user_visits
|
FROM user_visits
|
||||||
), visits AS (
|
), visits AS (
|
||||||
SELECT user_id, "start", DENSE_RANK() OVER (PARTITION BY user_id ORDER BY "start") "rank"
|
SELECT user_id
|
||||||
|
, MIN(visited_at) "start"
|
||||||
|
, DENSE_RANK() OVER (PARTITION BY user_id ORDER BY s) "rank"
|
||||||
FROM consecutive_visits
|
FROM consecutive_visits
|
||||||
GROUP BY user_id, "start"
|
GROUP BY user_id, s
|
||||||
HAVING COUNT(*) >= #{days}
|
HAVING COUNT(*) >= #{days}
|
||||||
)
|
)
|
||||||
SELECT user_id, "start" + interval '#{days} days' "granted_at"
|
SELECT user_id
|
||||||
|
, "start" + interval '#{days} days' "granted_at"
|
||||||
FROM visits
|
FROM visits
|
||||||
WHERE "rank" = 1
|
WHERE "rank" = 1
|
||||||
SQL
|
SQL
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue