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

时间:2022-09-28 13:09:09

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

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

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

SELECT YERA(established_time)  ,COUNT(*) AS num <span style="font-size: 13.75px; font-family: Arial, Helvetica, sans-serif;">FROM `table_record` GROUP BY YEAR (established_time)</span>

按月份进行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

Mysql 分别按月, 日为组group,进行统计排序order的更多相关文章

  1. MySql按周&sol;月&sol;日分组统计数据的方法

    知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case grou ...

  2. MySql 按周&sol;月&sol;日统计数据的方法

    知识关键词:DATE_FORMAT  select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case gro ...

  3. JZOJ2020年8月11日提高组T4 景点中心

    JZOJ2020年8月11日提高组T4 景点中心 题目 Description 话说宁波市的中小学生在镇海中学参加计算机程序设计比赛,比赛之余,他们在镇海中学的各个景点参观.镇海中学共有n个景点,每个 ...

  4. JZOJ2020年8月11日提高组T3 页

    JZOJ2020年8月11日提高组T3 页 题目 Description 战神阿瑞斯听说2008年在中华大地上,将举行一届规模盛大的奥林匹克运动会,心中顿觉异常兴奋,他想让天马在广阔的天空上,举行一场 ...

  5. JZOJ2020年8月11日提高组T2 宝石

    JZOJ2020年8月11日提高组T2 宝石 题目 Description 见上帝动了恻隐之心,天后也想显示一下慈悲之怀,随即从口袋中取出一块魔术方巾,让身边的美神维纳斯拿到后堂的屏风上去试试,屏风是 ...

  6. JZOJ2020年8月11日提高组T1 密码

    JZOJ2020年8月11日提高组T1 密码 题目 Description 在浩浩茫茫的苍穹深处,住着上帝和他的神仆们,他们闲谈着下界的凡人俗事,对人世间表现的聪明智慧,大加赞赏.今天他们正在观赏大地 ...

  7. JZOJ2020年8月11日提高组反思

    JZOJ2020年8月11日提高组反思 T1 看到题 啊这?! 我看错了吗??? 我理解错题了吗?? 好吧没有-- 高精度模板题,不用多说 T2 看到这种矩阵的问题 以为是前缀和搞事情 结果呢 扫描线 ...

  8. 【SHOI2008】JZOJ2020年9月5日提高组 循环的债务

    CSP-2020倒计时:36天 [SHOI2008]JZOJ2020年9月5日提高组 循环的债务 题目 Description Alice.Bob和Cynthia总是为他们之间混乱的债务而烦恼,终于有 ...

  9. JZOJ2020年9月5日提高组反思

    JZOJ2020年9月5日提高组反思 T1 考试的时候没有头绪,就打了个暴力,愉快的拿到了10分的\(impossible\) 正解是\(DP\),设\(f[i][j][k]\)表示地\(i\)种币值 ...

随机推荐

  1. css011 表格和表单的格式化

    css011 表格和表单的格式化 一.    让表格专司其职    Html中创建一个三行三列的表格 <table> <caption align="bottom&quot ...

  2. 正整数转换成N进制的数组

    给定一个正整数,按照N进制转换成数组元素存储 //给定一个整数,把它转换成按照N进制存储的数组 #include <stdio.h> #include <stdlib.h> # ...

  3. struts2&period;0中struts&period;xml配置文件详解

    先来展示一个配置文件 <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration ...

  4. ORACLE ORDER BY用法总结

    order by后面的形式却比较新颖(对于我来说哦),以前从来没看过这种用法,就想记下来,正好总结一下ORDER BY的知识. 1.ORDER BY 中关于NULL的处理 缺省处理,Oracle在Or ...

  5. 【JAVASCRIPT】event对象

    一.preventDefault  与 stopPropagation event.preventDefault() 和 event.stopPropagation() 不是JQuery的方法,是JS ...

  6. mssql sqlserver 将字段null&lpar;空值&rpar;值替换为指定值的三种方法分享

    摘要: 下文将分享两种将字段中null值替换为指定值的方法分享,如下所示: 实验环境:sqlserver 2008 R2 例: )) go insert into test(info)values(' ...

  7. 为什么IIS的应用池回收设置默认为1740分钟-20180720

    [非原创,个人收集,希望大家有感触] 你可曾留心过IIS的应用池回收设置默认值是多少?1740分钟对吗,那么为什么会是这样的数值呢? 在asp.net的某篇博客里提到了这个问题. 有关微软产品的许多决 ...

  8. javascript TODO

    1.需要深入学习DOM对象知识,very important! http://www.w3school.com.cn/htmldom/index.asp 2.深入学习javascript RegExp ...

  9. SpringBoot------全局异常捕获

    1.添加异常类 package myshop.config; import javax.servlet.http.HttpServletRequest; import org.springframew ...

  10. 开放地址法散列表ADT

    数据结构定义如下: typedef unsigned int Index; typedef Index Position; struct HashTbl; typedef struct HashTbl ...