牛客 每日新用户登录数, 每日新用户次日留存率
1 SET NAMES utf8mb4; 2 SET FOREIGN_KEY_CHECKS = 0; 3 4 -- ---------------------------- 5 -- Table structure for login 6 -- ---------------------------- 7 DROP TABLE IF EXISTS `login`; 8 CREATE TABLE `login` ( 9 `id` int NOT NULL, 10 `user_id` int NOT NULL, 11 `client_id` int NOT NULL, 12 `date` date NOT NULL, 13 PRIMARY KEY (`id`) USING BTREE 14 ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; 15 16 -- ---------------------------- 17 -- Records of login 18 -- ---------------------------- 19 INSERT INTO `login` VALUES (1, 2, 1, '2020-10-12'); 20 INSERT INTO `login` VALUES (2, 3, 2, '2020-10-12'); 21 INSERT INTO `login` VALUES (3, 1, 2, '2020-10-12'); 22 INSERT INTO `login` VALUES (4, 2, 2, '2020-10-13'); 23 INSERT INTO `login` VALUES (5, 1, 2, '2020-10-13'); 24 INSERT INTO `login` VALUES (6, 3, 1, '2020-10-14'); 25 INSERT INTO `login` VALUES (7, 4, 1, '2020-10-14'); 26 INSERT INTO `login` VALUES (8, 4, 1, '2020-10-15'); 27 28 SET FOREIGN_KEY_CHECKS = 1;
每日新用户数量-我的实现方式
1 SELECT 2 t.date, 3 sum(IF(t.new=0,1,0) ) `new` 4 FROM 5 ( 6 SELECT 7 date, 8 l1.user_id, 9 ( SELECT COUNT( l2.date ) FROM login l2 WHERE l1.user_id = l2.user_id AND l1.date > l2.date ) `new` 10 FROM 11 login l1 12 GROUP BY 13 l1.date, 14 l1.user_id 15 ) t 16 GROUP BY 17 t.date 18 ORDER BY 19 t.date
牛人的实现方式
1 SELECT 2 date, 3 sum( 4 CASE 5 WHEN ( user_id, date ) IN ( SELECT user_id, min( date ) FROM login GROUP BY user_id ) THEN 6 1 ELSE 0 7 END 8 ) 9 FROM 10 login 11 GROUP BY 12 date 13 ORDER BY 14 date;
每日新用户次日留存率
1 SELECT 2 l1.date, 3 ifnull( 4 round(( 5 sum( 6 CASE 7 8 WHEN ( l1.user_id, l1.date ) IN ( SELECT l2.user_id, date_add( l2.date, INTERVAL - 1 DAY ) FROM login l2 ) 9 AND ( l1.user_id, l1.date ) IN ( SELECT l3.user_id, min( l3.date ) FROM login l3 GROUP BY user_id ) THEN 10 1 ELSE 0 11 END 12 ))/ ( 13 sum( 14 CASE 15 16 WHEN ( l1.user_id, l1.date ) IN ( SELECT user_id, min( date ) FROM login GROUP BY user_id ) THEN 17 1 ELSE 0 18 END 19 )), 20 3 21 ), 22 0 23 ) AS p 24 FROM 25 login l1 26 GROUP BY 27 l1.date 28 ORDER BY 29 l1.date;
仅此记录一下
❀❀ (ง •_•)ง little little 🦆🦆 ❀❀❀❀ ♕♕♕♕♕

浙公网安备 33010602011771号