[SQL34] Calcule el número de jugadores que han iniciado sesión durante al menos dos días consecutivos y divida este número por el número total de jugadores.

Escriba una consulta SQL para informar las puntuaciones de los jugadores que inician sesión nuevamente el día después del primer inicio de sesión, redondeado a dos lugares decimales. En otras palabras, debe contar el número de jugadores que han iniciado sesión durante al menos dos días consecutivos a partir de la primera fecha de inicio de sesión y dividir este número por el número total de jugadores.

El formato del resultado de la consulta es el siguiente:
Tabla de actividades:
image.png

Tabla de resultados:

Tabla de resultados:
image.png

Explicación: Solo el jugador con ID 1 volverá a iniciar sesión después de iniciar sesión el primer día, por lo que la respuesta es 1/3 = 0.33

 

resolver:

SELECT round((SELECT COUNT(DISTINCT b.player_id)
                FROM activity AS b
                    ,activity AS c
               WHERE b.event_date =
                     (SELECT MIN(temp.event_date) FROM activity AS temp WHERE temp.player_id = b.player_id)
                 AND b.player_id = c.player_id
                 AND datediff(b.event_date, c.event_date) = -1) / COUNT(DISTINCT a.player_id),
             2) AS 'fraction'
  FROM activity AS a;




 

Supongo que te gusta

Origin blog.csdn.net/debimeng/article/details/104347728
Recomendado
Clasificación