暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MYSQL练习1-根据订单明细表计算每月的业绩趋势(知识点分组聚合及日期字段处理)

数据运营与数据分析 2021-05-06
1985

前言

在数据分析与数据运营的工作中,计算业绩趋势是我们最常见的数据计算之一。用于检验团队的任务完成情况,公司发展趋势,计算后续的任务目标等都需要用到,通常情况下我们拿到的是每一个订单的明细表,但是订单数量较多的时候我们通常会直接先在数据库中查询计算,简化数据后再使用。

今天我们就根据某公司的订单明细表,来简单的计算一下该公司某个时间段内的业绩趋势。为了不做过多解释数据字段名称已替换为中文。

数据源下载:点击下方关注 数据运营与数据分析 公众号回复消息 MySQL练习”获取

select * from 订单表 limit 5; # 看一下数据

需求

根据订单表,计算公司在2019年1月-2020年8月中,每个月的业绩(按照下单时间和已收款项计算)。

代码

# 需求代码
# Author:Jxr
SELECT
 DATE_FORMAT( 下单时间, "%Y-%m" ) AS 年月,
 ROUND( sum( 已收款项 ), 0 ) AS 业绩 
FROM
 订单表 
WHERE
 DATE_FORMAT( 下单时间, "%Y-%m" ) BETWEEN "2019-01" 
 AND "2020-08" 
GROUP BY
 DATE_FORMAT( 下单时间, "%Y-%m" );

小知识点

desc 订单表; # 查看字段数据类型

  • 下单时间 字段为字符串格式,并且精确到年月日时分秒,可以用date_format()函数提取'年-月'。

  • 语法:DATE_FORMAT(date,format)

  • 参数:date 参数是合法的日期。format 规定日期/时间的输出格式

格式描述
%a缩写星期名
%b缩写月名
%c月,数值
%D带有英文前缀的月中的天
%d月的天,数值(00-31)
%e月的天,数值(0-31)
%f微秒
%H小时 (00-23)
%h小时 (01-12)
%I小时 (01-12)
%i分钟,数值(00-59)
%j年的天 (001-366)
%k小时 (0-23)
%l小时 (1-12)
%M月名
%m月,数值(00-12)
%pAM 或 PM
%r时间,12-小时(hh:mm:ss AM 或 PM)
%S秒(00-59)
%s秒(00-59)
%T时间, 24-小时 (hh:mm:ss)
%U周 (00-53) 星期日是一周的第一天
%u周 (00-53) 星期一是一周的第一天
%V周 (01-53) 星期日是一周的第一天,与 %X 使用
%v周 (01-53) 星期一是一周的第一天,与 %x 使用
%W星期名
%w周的天 (0=星期日, 6=星期六)
%X年,其中的星期日是周的第一天,4 位,与 %V 使用
%x年,其中的星期一是周的第一天,4 位,与 %v 使用
%Y年,4 位
%y年,2 位
  • 分组聚合语法

SELECT  
  [DISTINCT] *|{字段名1, 字段名2, 字段名3,……}
FROM 表名
[WHERE 条件表达式1]
[GROUP BY 字段名 [HAVING 条件表达式2]]
[ORDER BY 字段名 [ASC|DESC]]
[LIMIT [OFFSET] 记录数]

  • 数据保留n位小数位:ROUND( 数据, 小数位数 )

  • 完整代码

SELECT
 DATE_FORMAT( 下单时间, "%Y-%m" ) AS 年月,
 ROUND( sum( 已收款项 ), 0 ) AS 业绩 
FROM
 订单表 
WHERE
 DATE_FORMAT( 下单时间, "%Y-%m" ) 
  BETWEEN "2019-01" AND "2020-08" 
GROUP BY
 DATE_FORMAT( 下单时间, "%Y-%m" );

运行结果

我们可以根据运行结果制作折线图,并且根据同比、环比数据以及近期行业发展状况,公司发展状况等因素进一步推导预测后续的业绩。

点个

在看

你最好看

文章转载自数据运营与数据分析,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论