日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql 统计日报_mysql 数据分析如何实现日报、周报、月报和年报?

發布時間:2025/3/21 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql 统计日报_mysql 数据分析如何实现日报、周报、月报和年报? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

以天為統計周期,是常見需求。周報、月報更是常見需求。長周期項目,甚至有年報需求。我已經掌握了mysql中按天統計,如何實現按年、按月、按周統計呢?

1、已掌握的技能:按天統計

實現以天為統計周期很簡單。具體來說,date() 函數可返回時間數據的日期,即僅有年月日,沒有時分秒信息。結合 group by 可實現按天統計。

以天為統計周期的數據指標非常多,隨便舉例,比如每日新增注冊用戶數。

select

date(created_at) as 注冊日期,

count(user_id) as 用戶數

from

users

group by

注冊日期

order by

注冊日期

2、從已知推理,拓展技能

既然date()函數可用,那么是否有對應的 year、month、week 等函數可用呢?這純屬我的推理,那試試看吧。

果然可行。但美中不足的是,返回的周數和月數不帶年份。當數據量跨年時,它會把每年相同周數或月數的數據加在一起。如何實現某年某月和某年某周呢?已有知識儲備去推理,沒找到答案,那就直接搜索吧!

3、搜索找答案

經過搜索和嘗試發現,在mysql中用date_format(column_name,'%Y-%m')來代替month()就能拿到年月值。

如果把其中代表月month的關鍵字m換成周week呢?試試看。分別嘗試:

date_format(column_name,'%Y-%w') 和 date_format(column_name,'%Y-%W')。

數據返回結果不對呀?并不是預期的今年第幾周。小寫的w返回的是本周第幾天,大寫的W返回的是周幾的英文名。如何拿到今年第幾周這個值,實現周報的統計周期呢?

4、覺察知識點欠缺,查漏補缺

我自學編程時,很喜歡從已知去推理,拓展自己的技能。通常推理能帶來驚喜,當推理不夠用時,那就搜索大法好。搜索特定問題的答案時,通常也能發現某塊知識不足。比如我這里我就意識到自己不熟悉表達日期的關鍵字或常用語法。

恰好搜索時遇到相濡以沫66的文章,里面有很好的整理。

MySQL日期格式化(format)取值范圍。

%S、%s

兩位數字形式的秒( 00,01, ..., 59)

%I、%i

兩位數字形式的分( 00,01, ..., 59)

小時

%H

24小時制,兩位數形式小時(00,01, ...,23)

%h

12小時制,兩位數形式小時(00,01, ...,12)

%k

24小時制,數形式小時(0,1, ...,23)

%l

12小時制,數形式小時(0,1, ...,12)

%T

24小時制,時間形式(HH:mm:ss)

%r

12小時制,時間形式(hh:mm:ss AM 或 PM)

%p

AM上午或PM下午

%W

一周中每一天的名稱(Sunday,Monday, ...,Saturday)

%a

一周中每一天名稱的縮寫(Sun,Mon, ...,Sat)

%w

以數字形式標識周(0=Sunday,1=Monday, ...,6=Saturday)

%U

數字表示周數,星期天為周中第一天

%u

數字表示周數,星期一為周中第一天

%d

兩位數字表示月中天數(01,02, ...,31)

%e

數字表示月中天數(1,2, ...,31)

%D

英文后綴表示月中天數(1st,2nd,3rd ...)

%j

以三位數字表示年中天數(001,002, ...,366)

%M

英文月名(January,February, ...,December)

%b

英文縮寫月名(Jan,Feb, ...,Dec)

%m

兩位數字表示月份(01,02, ...,12)

%c

數字表示月份(1,2, ...,12)

%Y

四位數字表示的年份(2015,2016...)

%y

兩位數字表示的年份(15,16...)

文字輸出

%文字

直接輸出文字內容

把單個知識點,稍微提升到某塊知識點,能讓自己的知識技能再上一個臺階。

5、求助也是社交,問人附紅包

上述表格相當實用,但依然沒有解決如何獲得“某年第幾周”的需求。

雖然說主動檢索找到答案,是很好的習慣。但自己耗費大量時間也沒找到答案,又恰恰有目標相同的人一起互助,何不問問人看呢?學習么,本質上是個社交行為。在學一樣技能時,我喜歡泡幾個氛圍好的學習群。經常在群里分享自己的心得筆記,也會主動力所能及地幫助別人,或者提出自己的疑問引發探討。求助就是一種很好的社交行為啊。

此時我把疑問丟到編程學習群,并附上紅包請教。經指點很快得到答案,用到了concat()函數來拼接。

方便大家拷貝學習,放一下代碼吧:

select

concat(date_format(created_at,'%Y-'),week(created_at)) as 年周,

count(user_id) as 用戶數

from

users

group by

年周

order by

年周

6、小結

總結一下,mysql中可通過date_format() 和 concat(),week()等函數可完成數據分析中常用的月報、周報中按月、周統計的需求。關鍵語句為:

date(column_name) as 年月日

date_format(column_name,'%Y-%m') as 年月

concat(date_format(column_name,'%Y-'),week(column_name) as 年周

這篇筆記除了知識點,我也放了自己探索擴展技能的思路。是否對你有啟發呢?如果有,記得留言或點贊告訴我,鼓勵我多多分享。

特別申明:這篇筆記圖中數據為本地數據庫,僅供本人練習使用,并非任何產品網站的正式數據。

關于找一找教程網

本站文章僅代表作者觀點,不代表本站立場,所有文章非營利性免費分享。

本站提供了軟件編程、網站開發技術、服務器運維、人工智能等等IT技術文章,希望廣大程序員努力學習,讓我們用科技改變世界。

[mysql 數據分析如何實現日報、周報、月報和年報?]http://www.zyiz.net/tech/detail-93456.html

總結

以上是生活随笔為你收集整理的mysql 统计日报_mysql 数据分析如何实现日报、周报、月报和年报?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。