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,563評論 0 20
  • ETL測試 ETL測試過程與其他測試過程類似,包括一些階段。 確定業務需求 測試計劃 設計測試用例和測試數據 測試...
    python測試開發閱讀 3,995評論 0 6
  • pyspark.sql模塊 模塊上下文 Spark SQL和DataFrames的重要類: pyspark.sql...
    mpro閱讀 9,504評論 0 13
  • BI一詞早在20年前就被提出,加特納集團將商業智能定義為描述一系列的概念和方法,通過應用基于事實的支持系統來輔助商...
    faa9660dbf08閱讀 972評論 0 7
  • 【思享·人大·第228期】江東哲:保姆級保研入門指南——從人大信院到北大叉院大數據研究中心 人大 信科 北大叉院保...
    牛頓的日記閱讀 2,019評論 0 0