Sobes.tech
Junior

„Botų srauto dalis Antifraud komanda sukūrė mechanizmą, skirtą aptikti botų srautą parduotuvės svetainėje: kai botas įeina į svetainę, į jo URL parametrus pridedama subeilutė "bot" (neatsižvelgiant į didžiąsias ir mažąsias raides). Jei user_id buvo bent kartą nustatytas kaip botas gruodžio mėnesį, jis visada turi būti laikomas botu. Tyrinėkite naudotojų apsilankymų duomenų rinkinį svetainėje ir apskaičiuokite botų dalį pagal bendrą naudotojų skaičių 2024 m. gruodį (suapvalinkite iki vieno skaitmens po kablelio). Įvesties formatas Lentelė visits: - event_date (date) — apsilankymo data - user_id (int) — unikalus naudotojo identifikatorius - url (string) — nuoroda, per kurią įvykdytas apsilankymas Duomenys neapima trūkstamų ar klaidingų reikšmių. Išvesties formatas Užklausa turi grąžinti lentelę su laukais: - share (float) — botų dalis pagal bendrą naudotojų skaičių gruodį, suapvalinta iki vieno skaitmens po kablelio.

sobes.tech AI

Atsakymas iš AI

sql WITH bot_users AS ( SELECT DISTINCT user_id FROM visits WHERE LOWER(url) LIKE '%bot%' AND event_date BETWEEN '2024-12-01' AND '2024-12-31' ), all_users AS ( SELECT DISTINCT user_id FROM visits WHERE event_date BETWEEN '2024-12-01' AND '2024-12-31' ) SELECT ROUND(COUNT(DISTINCT b.user_id) * 100.0 / COUNT(DISTINCT a.user_id), 1) AS share FROM all_users a LEFT JOIN bot_users b ON a.user_id = b.user_id;


Этот запрос сначала находит всех пользователей, у которых в декабре 2024 был хотя бы один визит с "bot" в URL (без учета регистра), затем всех пользователей в декабре. После этого вычисляет долю ботов от общего числа пользователей и округляет до одного знака после запятой.