iT邦幫忙

2022 iThome 鐵人賽

DAY 13
0
自我挑戰組

商業數據分析應用系列 第 13

[Day13] SQL語法練習

  • 分享至 

  • xImage
  •  

TODAY's Goal

SQL語法練習
統整目前資訊
決定好要用的視覺化圖表

今天在My SQL中進行語法練習,並會大概整理一下目前分析的狀況,看還有沒有什麼值得深入探究的地方。

篩掉含有'ride_length'欄位小於'00:01:00'的資料
計算總共的不重複筆數
以長租/中租/短租來計算數量

將'started_at','ended_at'及'ride_length'轉換型態

由於存入資料庫的是僅篩掉'##'的資料,而在日期時間部分沒有特別先處理(想說多練習一點),故先來找轉換型態的方式,發現在HeidiSQL中可以很方便的轉換資料型態(*但僅適用於原本格式就符合的,像是日期順序不對的會直接出錯)
https://ithelp.ithome.com.tw/upload/images/20220915/201438631L7EjL2Vkx.png

直接在資料表的地方更改即可!記得按存檔。

查了一下如果想要更改日期順序不對的字串欄位,在MySQL中可以使用 CONVERT()、CAST()或STR_TO_DATE() 等,但好像都只有看到單一欄位的更改,明天比較有空時再來補充這裡~
2022/9/16補充
以下語法可順利將字串轉為datetime資料型態,但僅限單欄。

SELECT STR_TO_DATE('31-03-2020 09:07','%d-%m-%Y %h:%i');

https://ithelp.ithome.com.tw/upload/images/20220916/20143863hNlJZo6jHC.png

後來放棄直接在MySQL修改的念頭,轉向在Python前處理(將字串拆成僅有日期&僅有時間兩個新欄位)再轉入資料庫,兩個搭配起來時間上真的快很多~/images/emoticon/emoticon07.gif
以下SQL語法參考

  • 凌晨時段租借:10,233筆
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '00:00:00' AND '05:59:00');
  • 早晨時段租借:142,303筆
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '06:00:00' AND '11:59:00');
  • 下午時段租借:191,446筆
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '12:00:00' AND '17:59:00');
  • 晚上時段租借:75,233筆
SELECT COUNT(started_at)
FROM clean_data_ver
WHERE (ride_length >= '00:01:00') AND (started_time BETWEEN '18:00:00' AND '23:59:00');

篩選資料

篩掉含有'ride_length'欄位小於'00:01:00'的資料

SELECT * FROM clean_data
WHERE ride_length >= '00:01:00';

計算不重複筆數 (DISTINCT)

計算總共的不重複筆數

SELECT COUNT(DISTINCT ride_id) FROM clean_data
WHERE ride_length >= '00:01:00';

分組計算數量

以長租/中租/短租來計算數量
短租

SELECT COUNT(ride_id) FROM clean_data
WHERE ride_length Between'00:01:00' AND '01:00:00';

中租

SELECT COUNT(ride_id) FROM clean_data
WHERE ride_length >'01:00:00' AND ride_length <'12:00:00';

長租

SELECT COUNT(ride_id) FROM clean_data
WHERE ride_length >'12:00:00';

眼看截稿時間快要到了,今天練習就先到這邊XD
明天面完試可以有比較多時間在這邊!會再補上沒完成的部份的/images/emoticon/emoticon02.gif


上一篇
[Day12] 將資料存入MariaDB(MySQL)
下一篇
[Day14] 分析項目梳理
系列文
商業數據分析應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言