mysql 数据分析如何实现日报、周报、月报和年报?
以天为统计周期,是常见需求。周报、月报更是常见需求。长周期项目,甚至有年报需求。我已经掌握了mysql
中按天统计,如何实现按年、按月、按周统计呢?
1、已掌握的技能:按天统计
系统流小说 www.kuwx.net
实现以天为统计周期很简单。具体来说,date()
函数可返回时间数据的日期,即仅有年月日,没有时分秒信息。结合 group by
可实现按天统计。
以天为统计周期的数据指标非常多,随便举例,比如每日新增注册用户数。
selectdate(created_at) as 注册日期,count(user_id) as 用户数
fromusers
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()
函数来拼接。
方便大家拷贝学习,放一下代码吧:
selectconcat(date_format(created_at,'%Y-'),week(created_at)) as 年周,count(user_id) as 用户数
fromusers
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 年周
这篇笔记除了知识点,我也放了自己探索扩展技能的思路。是否对你有启发呢?如果有,记得留言或点赞告诉我,鼓励我多多分享。
特别申明:这篇笔记图中数据为本地数据库,仅供本人练习使用,并非任何产品网站的正式数据。
mysql 数据分析如何实现日报、周报、月报和年报?相关推荐
- sql日报周报月报季报年报
俗话说的好,三个臭皮匠顶个诸葛亮,可是在这个it行业菜鸟就是菜鸟,都需要一步一步走过. 作为菜鸟的我们不要灰心,加油.我们都懂得一个道理,那就是无论做什么都要有个过程. 分享一下sql日报周报月报季报 ...
- 日报周报月报工作总结生成器【智能文案生成器】
日报周报月报工作总结生成器[智能文案生成器] 天天写日报,我真的快奔溃了! 摸了一天鱼,下班还要写日报: 划了一周的水,周末还要写周报: 啊啊啊啊- 在职场上,尤其是互联网公司里,"写周报& ...
- mysql周报内容范文_Mysql报表查询实例(日报|周报|月报|时间差自动计算)
例子,mysql报表查询综合实例. 复制代码 代码示例: public List retrieve(IReport report) { List list = new ArrayList(); Map ...
- 日报周报月报工作总结生成器「智能文案生成器」
在职场上,尤其是互联网公司里,"写周报"是一件麻烦的事情.理想的工作环境下,写周报能让工作内容透明化,并有助于总结工作经验和办事方法.但现实情况往往没那么理想.有些公司学习&quo ...
- mysql 统计日报_mysql 数据分析如何实现日报、周报、月报和年报?
以天为统计周期,是常见需求.周报.月报更是常见需求.长周期项目,甚至有年报需求.我已经掌握了mysql中按天统计,如何实现按年.按月.按周统计呢? 1.已掌握的技能:按天统计 实现以天为统计周期很简单 ...
- 【转载】某牛逼的文章《曝光一下我开发的游戏项目的日报周报 》
以下是我最近几个月开发的<美人三国>游戏的一个大概过程.记录每天做了什么,开发了什么代码,等等. 就目前我所经历的这个项目,我学习到了很多东西.包括游戏的架构,游戏的业务开发.游戏的地图, ...
- MySQL数据分析-(1) 数据库前言
(一)开场白 大家好,欢迎大家跟我一起学习<MySQL数据分析实战>这门课程,对于数据分析师来说,数据库是每一个从业者都必须掌握的课程,我们这门课是从实战的角度出发,我会帮助大家梳理MyS ...
- 淘宝双十二活动复盘——Mysql数据分析+Tableau可视化
项目目录 一.项目介绍 1.1 项目背景 1.2 分析思路 二.数据预处理 2.1 数据来源与认识 2.2 观察数据 2.3 添加字段 2.4 检查空值 2.5 检查重复值 2.6 检查异常值 三.数 ...
- 项目管理逻辑:日志\周报\月报, 一直要求写, 有用吗?
目录 1.公司管控项目: 2.什么是项目的生命周期? 3.项目管控举例 3.1装修项目阶段划分 3.2研发项目 4.控制项目的核心 1.公司管控项目: 写周报,日报,项目问题照样失控, 其实本质上的问 ...
最新文章
- Scikit-learn 发布 0.20版本!新增处理缺失值、合并Pandas等亮点功能
- 百度股价接连暴涨的背后,看Apollo的2020
- Revit二次开发之“创建尺寸标注”
- cursor 过滤 android,Android cursor query方法详解
- python取文本中间_Python读取两个字符串之间的特定文本行
- React开发(174):ant design按钮确认删除
- java-图像的几何变换
- 一篇让你的Python代码变得更加整洁的文章!
- 理想汽车致歉并宣布召回10469台车,官方:不影响后续生产和销售
- dgl._ffi.base.DGLError: Cannot assign node feature “n_feat“ on device cuda:0 to a graph on device
- 这就是搜索引擎 (豆瓣).html 1.index 第1章 搜索引擎及其技术架构 1 第2章 网络爬虫 12 第3章 搜索引擎索引 36 第4章 索引压缩 76 第5章 检索模型与搜索排序 99
- 全球地名中英文对照表(S)
- vue 圆形百分比进度条_vue 圆形进度条组件解析
- 自用计算机一套送东西,购买笔记本电脑别忘记索要赠品
- 深度学习:Nvidia显卡驱动安装
- [Irving]SqlServer 拆分函数用法
- 网络费用报销管理系统的设计与实现
- 离散信号的抽取和内插例题_抽取和内插
- Android开发总结:个人开发者如何通过广告平台赚钱
- 定制合成彩色光刻胶(黑色负性i-line光刻胶;红色、蓝色、黄色、紫色、绿色、黑色)
热门文章
- linux下的"BusHound"——usbmon
- cad在布局怎么调比例_CAD中怎么在布局里设置不同的比例出图
- 关于windows Server 服务器MD5报错,System.InvalidOperationException: 此实现不是 Windows 平台 FIPS 验证的加密算法的一部分。
- ghost后只剩下C盘的数据恢复方法
- git权威指南总结五:git克隆
- java向cdn_域名解析和cdn 原理
- 登录——通过手机号获取验证码(阿里云短信服务)
- windows mobile POOM
- 瑶瑶带你玩激光坦克(暴力)
- SQL Server 中as语句后加英文,标点符号等内容