資料分析師之SQL入門

germo發表於2021-09-09

作為大資料分析師,使用的最多的莫過於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');

答案參考 (沒有成功執行,還需要再研究一下)

Tips1 @和:=
mysql中變數不用事前申明,在用的時候直接用“@變數名”使用就可以了。
第一種用法:set @=1; 或set @:=1; //這裡要使用變數來儲存資料,直接使用@變數
第二種用法:select @num:=1; 或 select @num:=欄位名 from 表名 where ……
注意上面兩種賦值符號,使用set時可以用“=”或“:=”,但是使用select時必須用“:=賦值”



作者:明軒李
連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1868/viewspace-2815009/,如需轉載,請註明出處,否則將追究法律責任。

相關文章