[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/rezzcode/Leetcode-Solutions/main/MySQL/active-users.sql [Back]  [Original]

# Time:  O(nlogn)
# Space: O(n)

SELECT DISTINCT 
       r.id,
       r.name
FROM
  (SELECT a_l.id,
          a_l.name,
          @accu := CASE
                       WHEN a_l.name = @prev AND 
                            DATEDIFF(a_l.login_date, @login_date) = 1
                       THEN @accu + 1
                       ELSE 1
                   END AS accu,
          @prev := a_l.name AS prev,
          @login_date := a_l.login_date AS login_date
   FROM (
           (SELECT DISTINCT
                   a.id,
                   a.name,
                   l.login_date
            FROM accounts a
            LEFT JOIN logins l
            ON a.id = l.id
            ORDER BY a.id,
                     a.name,
                     l.login_date) a_l,
           (SELECT @accu := 0,
                   @prev := "",
                   @login_date := "") init
        )
  ) r
WHERE r.accu = 5;

Web Proxy Viewer  |  New URL  |  Original Page