https://www.youtube.com/watch?v=Uyz-bJkBOXA
CREATE TABLE activity (
player_id INT,
device_id INT,
event_date DATE,
PRIMARY KEY (player_id, event_date)
);
INSERT INTO activity (player_id, device_id, event_date) VALUES
(1, 2, '2024-12-01'),
(1, 2, '2024-12-02'),
(2, 3, '2024-12-05'),
(3, 1, '2024-12-07'),
(3, 4, '2024-12-09');

WITH CTE AS
(
SELECT
player_id,
event_date,
day(event_date) - ROW_NUMBER() OVER (PARTITION BY player_id ORDER BY event_date ASC) AS Grp -- OR USE DATEDIFF() WITH LEAD
FROM activity
),
CTE2 AS (
SELECT
COUNT(distinct player_id) AS Consq_players
FROM CTE
GROUP BY grp
HAVING COUNT(grp) >= 2
),
CTE3 AS (
SELECT
COUNT(distinct player_id) AS Total_Players
FROM activity
)
SELECT
Consq_Players,
Total_Players,
ROUND((Consq_players / Total_Players)*100,2) AS Percentage
FROM CTE3,CTE2
