SQL 连续三天登录问题

这个问题虽然说难不难,但说易也不简单,而且,偏受大小厂喜欢。其实,不管是数仓/ETL/BI/数据分析/大数据等方向,都会经常被面试/笔试考察到。

1.还原场景 - 建表

select * from tmp.tmp_last_3_day;

image

2.解决问题关键-分析

image.gif

3.SQL实现 - 见证奇迹的时刻

连续3天登录的用户id ­­ sql如下:

image.gif

我们再来看下结果:

image

其实,方法有很多,上面只是选了一种技巧性比较强的一种。下面也是一种不错的方法,大佬们肯定还有其他实现方式,欢迎小伙伴们留言,一起讨论,一起进步 ~ go go go ...

image
image.png

1、行转列的用法PIVOT

CREATE table test(id int,name nvarchar(20),quarter int,number int)insert into test values(1,N'苹果',1,1000)insert into test values(1,N'苹果',2,2000)insert into test values(1,N'苹果',3,4000)insert into test values(1,N'苹果',4,5000)insert into test values(2,N'梨子',1,3000)insert into test values(2,N'梨子',2,3500)insert into test values(2,N'梨子',3,4200)insert into test values(2,N'梨子',4,5500)select * from test

结果:

image
select ID,NAME,[1] as '一季度',[2] as '二季度',[3] as '三季度',[4] as '四季度'fromtestpivot(sum(number)for quarter in([1],[2],[3],[4]))as pvt

结果:

image
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【福利】探求ETL本质http://mp.weixin.qq.com/s?__biz=MjM5MTYwMjI3Mw...
    葡萄喃喃呓语阅读 1,619评论 0 20
  • ETL测试 ETL测试过程与其他测试过程类似,包括一些阶段。 确定业务需求 测试计划 设计测试用例和测试数据 测试...
    python测试开发阅读 4,070评论 0 6
  • pyspark.sql模块 模块上下文 Spark SQL和DataFrames的重要类: pyspark.sql...
    mpro阅读 9,554评论 0 13
  • BI一词早在20年前就被提出,加特纳集团将商业智能定义为描述一系列的概念和方法,通过应用基于事实的支持系统来辅助商...
    faa9660dbf08阅读 1,012评论 0 7
  • 【思享·人大·第228期】江东哲:保姆级保研入门指南——从人大信院到北大叉院大数据研究中心 人大 信科 北大叉院保...
    牛顿的日记阅读 2,052评论 0 0