數據庫面試題:點擊日志表——黑產行為
-- 建表
drop table if exists tencent_video_click;
create table if not exists tencent_video_click(
vuid int,
`date` date, -- 點擊日期
`time` int comment '點擊時間時間戳格式',
platform int default 21
);
select unix_timestamp('2021-03-01 00:00:00'); -- 1614528000
-- 插入造的數據
insert into tencent_video_click values
(1, '2021-03-01', 1614528000, 21),
(1, '2021-03-01', 1614528001, 22),
(1, '2021-03-01', 1614528001, 21),
(2, '2021-03-01', 1614528004, 21),
(3, '2021-03-01', 1614528000, 21),
(2, '2021-03-01', 1614528005, 21),
(3, '2021-03-01', 1614528000, 22),
(4, '2021-03-01', 1614528007, 21),
(4, '2021-03-01', 1614528009, 22),
(4, '2021-03-01', 1614528010, 21);
-- 要求:已知同一用戶在移動端連續點擊兩次時間間隔不高于2秒,則可能產生黑產行為
-- 篩選出21年3月份所有有可能為黑產行為的點擊記錄
/*
分析:
從同一用戶在移動端連續點擊兩次時間間隔不高于2秒這句話中可以得知 我們需要得到同一用戶在移動端上下兩次點擊時間的數據并進行關聯
因此需要使用自連接查詢 連接條件是平臺一樣 用戶一樣 篩選條件是兩者時間相減不高于2秒
然后在此基礎上再加上時間的篩選
*/
select t1.*, t2.time as `第二次點擊` from tencent_video_click as t1 join tencent_video_click as t2
on t1.vuid=t2.vuid and t1.platform=t2.platform
where t2.time-t1.time <= 2 and t2.time-t1.time > 0 and year(t1.date) = 2021 and month(t1.date) = 3;
/*
vuid date time platform 第二次點擊
2021-03-01 1614528000 21 1614528001
2021-03-01 1614528004 21 1614528005
*/
更多關于python培訓的問題,歡迎咨詢千鋒教育在線名師。千鋒教育擁有多年IT培訓服務經驗,采用全程面授高品質、高體驗培養模式,擁有國內一體化教學管理及學員服務,助力更多學員實現高薪夢想。