登录
首页 >  数据库 >  MySQL

mysql 把date类型数据查出来后按周,按月分组

来源:SegmentFault

时间:2023-01-09 18:11:17 304浏览 收藏

积累知识,胜过积蓄金银!毕竟在##column_title##开发的过程中,会遇到各种各样的问题,往往都是一些细节知识点还没有掌握好而导致的,因此基础知识点的积累是很重要的。下面本文《mysql 把date类型数据查出来后按周,按月分组》,就带大家讲解一下MySQL知识点,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~

原本的SQL和查出的结果如下:

    SELECT
        biz_day,
        record.amount 
    FROM
        ods_sale_pay_record record
    WHERE
        project.delete_flag = 'N' 
        AND ( record.biz_day >= '2021-10-01' AND record.biz_day = '2022-01-01' AND record.biz_day 

结果:

image.png

现要求按照月份为维度汇总数据,可以使用DATE_FORMAT函数
修改后的SQL如下:

    SELECT
        DATE_FORMAT(biz_day,'%Y%m') months,
        SUM( record.amount ) 'amount'
    FROM
        ods_sale_pay_record record
    WHERE
        record.status_code = 'PAY_RECORD_PAID' 
        AND ( record.biz_day >= '2021-10-01' AND record.biz_day = '2022-01-01' AND record.biz_day 

结果如下:

image.png

拓展:
如果想要按照天、周、月等不同的粒度对数据进行分组统计也可以参考如下的语法:

1)按天统计:

select DATE_FORMAT(biz_day,'%Y%m%d') days,SUM( record.amount ) 'amount' from test group by biz_day; 

2)按周统计:

select DATE_FORMAT(biz_day,'%Y%u') weeks,SUM( record.amount ) 'amount' from test group by biz_day; 

3)按月统计:

select DATE_FORMAT(biz_day,'%Y%m') months,SUM( record.amount ) 'amount' from test group by biz_day; 

今天关于《mysql 把date类型数据查出来后按周,按月分组》的内容就介绍到这里了,是不是学起来一目了然!想要了解更多关于mysql的内容请关注golang学习网公众号!

声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>
评论列表