mysql 按月排序_Mysql 分别按月, 日为组group,进行统计排序order

在数据库中我们经经常使用sql语句对表进行简单的统计排序,对于日期字段。我们能够简单的对其进行order。

对于复杂一点的能够按日期中的年。月,日分别进行group,order。

按年份进行group,统计排序:

SELECT YERA(established_time) ,COUNT(*) AS num FROM `table_record` GROUP BY YEAR (established_time)

按月份进行group。统计排序:

方法一:简单有用

SELECT YEAR(established_time) AS 'year' , MONTH(established_time) AS 'month' , COUNT(*) AS 'count'

FROM `table_record`

GROUP BY YEAR (established_time) DESC, MONTH(established_time)

效果:

year   month   count

------  ------  -------

2014       1      8320

2014       2      5837

2014       3     25069

2014       4     29820

2014       5     25060

2014       6     17615

2014       7         1

2013       1      9114

2013       2      4258

方法二:利用 MySql内置字符串连接函数

CONCAT(str1, str2, ...,str3) 。

SELECT CONCAT(YEAR(established_time),',',MONTH( established_time)) AS data_time ,COUNT(*) AS num

FROM `table_record`

#group by data_time

GROUP BY YEAR(established_time) DESC,MONTH( established_time)效果:

data_time

num

---------  --------

2014,1         8320

2014,2         5837

2014,3        25069

2014,4        29910

2014,5        25018

2014,6        17347

2014,7            1

2013,1         9114

2013,2         4258

2013,3         8047

注意这里不要用:

SELECT YEAR(established_time)+MONTH( established_time) as data_time

这是错误的,它会造成2010+1=2011的这种错误。

此外,若只用以下语句,是统计的是多年来每月的数据。

SELECT MONTH(established_time) AS 'month' , COUNT(*) AS 'count'

FROM `tb_gongshangju_record_beijing` GROUP BY MONTH(established_time) DESC

效果例如以下:

month

count

------  --------

12     44952

11     49720

10     38587

9     48967

8     52874

7     54082

6     69532

5     76999

4     87289

3     85249

2     39997

1     49017

(NULL)     34456

按日期day进行group,统计排序

SELECT YEAR(established_time) AS 'year' , MONTH(established_time) AS 'month' ,DAY(established_time) AS 'day', COUNT(*) AS 'count'

FROM `table_record`

WHERE table_record.`established_time` >= '2014-01-01'

GROUP BY YEAR (established_time) DESC, MONTH(established_time) DESC ,DAY(established_time) DESC

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值