为了账号安全,请及时绑定邮箱和手机立即绑定

数据分析师之SQL入门

标签:
MySQL

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

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

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


webp

左边源表,右边期望结果

首先在在线数据库中创建表,插入上图左边源表数据
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


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消