sql 统计订单表每月单量和每月日均单量

您所在的位置:网站首页 求日均公式 sql 统计订单表每月单量和每月日均单量

sql 统计订单表每月单量和每月日均单量

2024-01-09 03:26| 来源: 网络整理| 查看: 265

以常见的订单表举例,统计每月日均单量;

1、先建表,插入测试数据,表建的比较简单,只是为了验证sql;

 

 

2、对查询进行拆解,先统计每月单量,然后在统计每月天数,最后单量除以天数即是每月的日均单量;

SELECT DATE_FORMAT( create_time, '%Y-%m' ) AS '月份', count( id ) AS '每月单量', DAY ( LAST_DAY( DATE_FORMAT( create_time, '%Y-%m-%d' ) ) ) AS '当月天数', CONVERT ( count( id ) / DAY ( LAST_DAY( DATE_FORMAT( create_time, '%Y-%m-%d' ) ) ), DECIMAL ( 10, 2 ) ) AS '当月日均单量' FROM order_demo GROUP BY DATE_FORMAT( create_time, '%Y-%m' );

 

DAY () 和 LAST_DAY() 是mysql自带的函数; DAY() 返回给定日期中 年—月—日的日, LAST_DAY() 返回给定日期所在月的最后一天;组合起来即可计算当月天数;

查询结果:

 对比表内数据检查结果集正确;

 

另外、还有关于统计每月下单天数的日均单量;比如:1月只有五天有客户下单;统计这五天的日均单量;这种更简单一点

SELECT DATE_FORMAT( create_time, '%Y-%m' ) AS '月份', count( id ) AS '单量', count( DISTINCT DATE_FORMAT( create_time, '%Y-%m-%d' ) ) AS '下单天数', CONVERT ( count( id ) / count( DISTINCT DATE_FORMAT( create_time, '%Y-%m-%d' ) ), DECIMAL ( 10, 2 ) ) as '当月下单天数日均单量' FROM order_demo GROUP BY DATE_FORMAT( create_time, '%Y-%m' );

查询结果:

  对比表内数据检查结果集正确;

 

把两种组合起来:

SELECT DATE_FORMAT( create_time, '%Y-%m' ) AS '月份', count( id ) AS '单量', DAY ( LAST_DAY( DATE_FORMAT( create_time, '%Y-%m-%d' ) ) ) AS '当月天数', count( DISTINCT DATE_FORMAT( create_time, '%Y-%m-%d' ) ) AS '下单天数', CONVERT ( count( id ) / DAY ( LAST_DAY( DATE_FORMAT( create_time, '%Y-%m-%d' ) ) ), DECIMAL ( 10, 2 ) ) AS '当月日均单量', CONVERT ( count( id ) / count( DISTINCT DATE_FORMAT( create_time, '%Y-%m-%d' ) ), DECIMAL ( 10, 2 ) ) AS '当月下单天数日均单量' FROM order_demo GROUP BY DATE_FORMAT( create_time, '%Y-%m' );

结果集:

  

最后,感谢大家访问,不正确的地方欢迎留言!

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3