手记

数据分析师之SQL入门

作为大数据分析师,使用的最多的莫过于SQL语句,这里拿几道典型的SQL面试题为例,学习一下数据库知识。
自己搭建MySQL服务器太麻烦,可以使用在线数据库

练习1 计算连续登陆天数 关键词 row_number

题目:SQL语句如何查询各个用户最长的连续登陆天数?如图左边是源表User,右边是需要达到的查询结果,试了row_number,但是无法达到连续登陆这个条件。


左边源表,右边期望结果

首先在在线数据库中创建表,插入上图左边源表数据
CREATE TABLE IF NOT EXISTS `loadrecord` (  `uid` int(6) unsigned NOT NULL,  `loadtime` varchar(200) NOT NULL,
  PRIMARY KEY (`uid`,`loadtime`)
) DEFAULT CHARSET=utf8;
INSERT INTO `loadrecord` (`uid`, `loadtime`) VALUES
  ('201', '2017/1/1'),
  ('201', '2017/1/2'),
  ('202', '2017/1/2'),
  ('202', '2017/1/3'),
  ('203', '2017/1/3'),
  ('201', '2017/1/4'),
  ('202', '2017/1/4'),
  ('201', '2017/1/5'),
  ('202', '2017/1/5'),
  ('201', '2017/1/6'),
  ('203', '2017/1/6'),
  ('203', '2017/1/7');

答案参考 https://bbs.csdn.net/topics/392243867 (没有成功运行,还需要再研究一下)

Tips1 @和:=
mysql中变量不用事前申明,在用的时候直接用“@变量名”使用就可以了。
第一种用法:set @num=1; 或set @num:=1; //这里要使用变量来保存数据,直接使用@num变量
第二种用法:select @num:=1; 或 select @num:=字段名 from 表名 where ……
注意上面两种赋值符号,使用set时可以用“=”或“:=”,但是使用select时必须用“:=赋值”



作者:明轩李
链接:https://www.jianshu.com/p/77597eadd3cc


0人推荐
随时随地看视频
慕课网APP