mysql 平均月份_Mysql按月份统计和按时段统计SQL
首先是需求分析:
现在有一个门店表store,记录着多家门店。S1,S2,S3...等
还有一个订单表orders,记录着订单,其中订单表D的store_id关联S表的主键ID
现在需要统计每个月份每个门店的销量,和每个门店0点-8点,8点-24点的销量
处理
问题1,需要统计分月分门店数据,GROUP BY分组查询就好,其中这里的问题在于分月。由于数据库中存的时间是时间戳格式(这里建议大家都存时间戳,方便统计分析)所以需要转换格式
查询到Myqsl的时间转换函数是:FROM_UNIXTIME。其中%c是转换出来的月份 01-12
大致搭建出来的SQL是:SELECT
sum(o.订单单价) AS money,
o.store_id,
s.storename,
count(o.id) AS nums,
FROM_UNIXTIME(o.addtime, '%c') AS months
FROM
orders o
INNER JOIN store s ON s.id = o.store_id
WHERE
o.state = 1
AND o.addtime > 1483200000
GROUP BY
store_id,
months
HAVING
months IS NOT NULL
执行出来的结果是:
问题2:分时段统计
因为需要分时段统计订单,那么数据处理的时候就不能直接拿出来分组了。所以这里用到WHEN THEN这个关键词,其中的%H 转出来是 00-23
搭建出来的SQL是SELECT
COUNT(orders.id) AS nums,
sum(cash_fee) AS money,
store_id,
CASE
WHEN (
FROM_UNIXTIME(addtime, '%H:%i:%s') BETWEEN '00:00:00'
AND '07:59:59'
) THEN
'00:00:00~08:00:00'
WHEN (
FROM_UNIXTIME(addtime, '%H:%i:%s') BETWEEN '08:00:00'
AND '23:59:59'
) THEN
'08:00:00~23:59:59'
END AS timetype
FROM
orders
JOIN store s ON orders.store_id = s.id
WHERE
addtime IS NOT NULL
AND orders.state = 1
GROUP BY
timetype,
store_id
查询出来的结果是:
Mysql的这些关键词在学校的时候还用过,但是出来上班之后用的比较少了,需要多用,多熟练
mysql 平均月份_Mysql按月份统计和按时段统计SQL相关推荐
- mysql平均锁_MySQL锁情况分析
TIPS 本文基于MySQL 8.0.22 分析锁的三种方式 方式1: show status like '%innodb_row_lock%'; 可查看行锁相关的统计信息 方式2: SHOW ENG ...
- mysql 字符串搜_mysql – 在表中搜索字符串的SQL查询?
嗨,我想在存储在mysql数据库中的表中搜索特定的字符串.表格结构如下: – +------------------------------------------------------------ ...
- mysql 临时表 事务_MySQL学习笔记十:游标/动态SQL/临时表/事务
逆天十三少 发表于:2020-11-12 08:12 阅读: 90次 这篇教程主要讲解了MySQL学习笔记十:游标/动态SQL/临时表/事务,并附有相关的代码样列,我觉得非常有帮助,现在分享出来大家一 ...
- mysql时间段重叠_MySQL - 如何选择'DISTINCT'重叠时段(日期或数字范围)
简单地说,如果查询告诉我A重叠B,那么我不需要它也告诉我B重叠A,因为它们彼此重叠. 所以我想在sql中使用自联接来选择'DISTINCT'重叠. 为了说明,这里是我写的一个简单的SQL小提琴,用于显 ...
- mysql 表聚合_Mysql分表之后的聚合统计
对于分表数目比较少的情况,直接用union all 就行 select ring_token , sum(a.sum_partition) as total from ( select ring_to ...
- mysql 年龄段分组_Mysql出生日期转换为年龄并分组统计人数的方法示例
查询数据库 SELECT * FROM `student` 查询结果 id name birthday 1 张三 1970-10-01 2 李四 1990-10-01 3 王五 2002-10-01 ...
- mysql函数大全最小,MySQL函数一览_MySQL函数全部汇总
前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...
- mysql iso 时间_mysql 中 时间和日期函数
原文链接: mysql 中 时间和日期函数 - redfox - 博客园 http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.htm ...
- mysql+时间串联_mysql时间操作
经典的例子: ,mySQL 时间.日期加减运算语句: select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT substring( ti ...
最新文章
- Spring IOC注解方式
- [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第25篇]使用特殊的素数定义GF(p)和GF(2^n)的方法
- Opencv——基于索引表的图像细化
- 技术管理者必备管理模板
- LINQ学习中需要明确的几点问题
- python dataframe函数_python pandas中DataFrame类型数据操作函数的方法
- 真正的程序员(转贴)
- java 分布式同步锁_java编程进阶之路:回归锁的本质,探索分布式锁之源头
- oa服务器日常维护,OA系统的日常维护工作有哪些
- KindEditor上传图片及使用
- Matlab 曲线拟合之polyfit与polyval函数
- 输出华氏温度用java_用JAVA写一个将华氏温度转换成摄氏温度的程序
- 矩阵的舒尔补(Schur complement)
- 石家庄联通宽带DNS服务器地址
- 项目经理人才培养专题︱优秀项目经理能力建设(一)
- 建模人必备的C4D素材网站,解决你的创作问题
- 机器人学笔记(01):1.绪论
- 4.6Bootstrap学习js插件篇之弹出框
- 从零开始学USB(二十一、USB接口HID类设备(三)_报表描述符Global类)
- Oracle如何限制非法调用包中过程
热门文章
- OSI网络七层模型简明教程
- GetClientRect()和GetWindowRect()
- math.floor java_Java Math.floor() 方法
- python 处理 excel格式文件
- 第四范式入选CB Insights首届中国金融科技榜单
- C指针原理(34)-Ncurses-文本终端的图形
- 【预训练模型】一文串起从NLP到CV 预训练技术和范式演进
- 【Python】Python字典的高级用法-统计计数
- 【NLP】ALL in BERT:一套操作冲进排行榜首页
- 不好好学C++还想做好算法?