WITH lead_login_info AS
(
SELECT account_id, ip_address,
lead(login, 1) over(partition by account_id ORDER BY login ASC, logout ASC) AS next_login,
lead(ip_address, 1) over(partition by account_id ORDER BY login ASC, logout ASC) AS next_ip, login, logout
FROM
LogInfo
),
login_info_difference AS
(
SELECT account_id, ip_address,
logout - next_login AS next_session_diff,
(ip_address - next_ip) AS is_same_ip
FROM
lead_login_info
)
SELECT DISTINCT account_id FROM login_info_difference
WHERE next_session_diff >= 0 AND is_same_ip != 0;