首先是需求分析:

现在有一个门店表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相关推荐

  1. mysql平均锁_MySQL锁情况分析

    TIPS 本文基于MySQL 8.0.22 分析锁的三种方式 方式1: show status like '%innodb_row_lock%'; 可查看行锁相关的统计信息 方式2: SHOW ENG ...

  2. mysql 字符串搜_mysql – 在表中搜索字符串的SQL查询?

    嗨,我想在存储在mysql数据库中的表中搜索特定的字符串.表格结构如下: – +------------------------------------------------------------ ...

  3. mysql 临时表 事务_MySQL学习笔记十:游标/动态SQL/临时表/事务

    逆天十三少 发表于:2020-11-12 08:12 阅读: 90次 这篇教程主要讲解了MySQL学习笔记十:游标/动态SQL/临时表/事务,并附有相关的代码样列,我觉得非常有帮助,现在分享出来大家一 ...

  4. mysql时间段重叠_MySQL - 如何选择'DISTINCT'重叠时段(日期或数字范围)

    简单地说,如果查询告诉我A重叠B,那么我不需要它也告诉我B重叠A,因为它们彼此重叠. 所以我想在sql中使用自联接来选择'DISTINCT'重叠. 为了说明,这里是我写的一个简单的SQL小提琴,用于显 ...

  5. mysql 表聚合_Mysql分表之后的聚合统计

    对于分表数目比较少的情况,直接用union all 就行 select ring_token , sum(a.sum_partition) as total from ( select ring_to ...

  6. mysql 年龄段分组_Mysql出生日期转换为年龄并分组统计人数的方法示例

    查询数据库 SELECT * FROM `student` 查询结果 id name birthday 1 张三 1970-10-01 2 李四 1990-10-01 3 王五 2002-10-01 ...

  7. mysql函数大全最小,MySQL函数一览_MySQL函数全部汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

  8. mysql iso 时间_mysql 中 时间和日期函数

    原文链接: mysql 中 时间和日期函数 - redfox - 博客园 http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.htm ...

  9. mysql+时间串联_mysql时间操作

    经典的例子: ,mySQL 时间.日期加减运算语句: select timediff('23:40:00', ' 18:30:00'); -- 两时间相减 SELECT   substring( ti ...

最新文章

  1. Spring IOC注解方式
  2. [密码学基础][每个信息安全博士生应该知道的52件事][Bristol Cryptography][第25篇]使用特殊的素数定义GF(p)和GF(2^n)的方法
  3. Opencv——基于索引表的图像细化
  4. 技术管理者必备管理模板
  5. LINQ学习中需要明确的几点问题
  6. python dataframe函数_python pandas中DataFrame类型数据操作函数的方法
  7. 真正的程序员(转贴)
  8. java 分布式同步锁_java编程进阶之路:回归锁的本质,探索分布式锁之源头
  9. oa服务器日常维护,OA系统的日常维护工作有哪些
  10. KindEditor上传图片及使用
  11. Matlab 曲线拟合之polyfit与polyval函数
  12. 输出华氏温度用java_用JAVA写一个将华氏温度转换成摄氏温度的程序
  13. 矩阵的舒尔补(Schur complement)
  14. 石家庄联通宽带DNS服务器地址
  15. 项目经理人才培养专题︱优秀项目经理能力建设(一)
  16. 建模人必备的C4D素材网站,解决你的创作问题
  17. 机器人学笔记(01):1.绪论
  18. 4.6Bootstrap学习js插件篇之弹出框
  19. 从零开始学USB(二十一、USB接口HID类设备(三)_报表描述符Global类)
  20. Oracle如何限制非法调用包中过程

热门文章

  1. OSI网络七层模型简明教程
  2. GetClientRect()和GetWindowRect()
  3. math.floor java_Java Math.floor() 方法
  4. python 处理 excel格式文件
  5. 第四范式入选CB Insights首届中国金融科技榜单
  6. C指针原理(34)-Ncurses-文本终端的图形
  7. 【预训练模型】一文串起从NLP到CV 预训练技术和范式演进
  8. 【Python】Python字典的高级用法-统计计数
  9. 【NLP】ALL in BERT:一套操作冲进排行榜首页
  10. 不好好学C++还想做好算法?