引言
環境上有一個實時表庫,該表存儲了一天24小時定時任務.馬上打算進行軟件升級,領導讓分析一下,什么時間升級軟件,對程序的影響最小.
這樣就需要進行數據統計,按小時進行分組,統計出每個小時的運行任務個數.
方案
方法1 sql+excel分組
sql: select * from t_jobs #查詢表中所有的記錄(表中只有24小時的數據)查詢記錄數466條.
查詢的數據導出到excel中,如下圖:
然后,在時間欄,進行篩選函數,得到自分組,可以查看每個分組的個數和詳細.篩選結果如下圖:
優點:查看方便,尤其是可以得知在某個時間段內,有多少個具體的程序在運行.
缺點:不直觀,想要知道24小時之內的程序運行分布狀況,需要一個個去查看,比較麻煩.
方案2. sql分組查詢
sql:?SELECT?DATE_FORMAT(planTime,'%Y%m%d%H')hours,COUNT(any_value(planTime)) FROM t_jobs?GROUP BY hours;
將結果導出后,結果顯示如下:
sql說明:?any_value()函數,主要是為了避免mysql的group查詢函數失效,因為MySQL 5.7.5后only_full_group_by成為sql_mode的默認選項之一,這會導致在查詢的時候,如果不加上any_value()函數,則會報錯.
優點:可以很清楚看到程序分布情況
缺點:不能像excel一樣查看具體的流程信息.
總結 ? ? 根據自己需要進行使用.同時避免mysql版本不同帶來的腳本兼容性問題.