SQL每日一题(20210830)
SELECT ROUND((COUNT(*) / (SELECT COUNT(*) FROM (SELECT COUNT(*) FROM T0525 GROUP BY player_id) AS a)), 2) AS FRACTION
FROM T0525 AS T1,
T0525 AS T2
WHERE T1.player_id = T2.player_id
AND T1.event_date <
T2.event_date
AND DATEDIFF(T1.event_date, T2.event_date) = -1;
SELECT ROUND(1.0 * (SELECT COUNT(1) AS LX_COUNT
FROM (SELECT T1.PLAYER_ID
FROM T0525 AS T1,
T0525 AS T2
WHERE ABS(timestampdiff(day , T1.EVENT_DATE, T2.EVENT_DATE)) = 1
AND T1.PLAYER_ID = T2.PLAYER_ID
GROUP BY T1.PLAYER_ID
HAVING COUNT(1) >
1) AS T) / (SELECT COUNT(1) AS P_COUNT FROM (SELECT PLAYER_ID FROM T0525 GROUP BY PLAYER_ID) AS T),2)