前言
在数据分析与数据运营的工作中,计算业绩趋势是我们最常见的数据计算之一。用于检验团队的任务完成情况,公司发展趋势,计算后续的任务目标等都需要用到,通常情况下我们拿到的是每一个订单的明细表,但是订单数量较多的时候我们通常会直接先在数据库中查询计算,简化数据后再使用。
今天我们就根据某公司的订单明细表,来简单的计算一下该公司某个时间段内的业绩趋势。为了不做过多解释数据字段名称已替换为中文。
数据源下载:点击下方关注 数据运营与数据分析 公众号回复消息 “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) |
| %p | AM 或 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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。







