原 收集SQL语句统计每天、每月、每年的数

1、每年

select year(ordertime) as year,count(*) as count
from 订单表
group by year(ordertime)

2、每月

select year(ordertime) as year,
month(ordertime) as month,
sum(Total) as sun_total
from 订单表
group by year(ordertime),
month(ordertime)

3、每日

select year(ordertime) as year,
month(ordertime) as month,
day(ordertime) as day,
sum(Total) as sum_total
from 订单表
group by year(ordertime),
month(ordertime),
day(ordertime)

另外每日也可以这样:

select convert(char(8),ordertime,112) dt,
sum(Total) 销售合计
from 订单表
group by convert(char(8),ordertime,112)

例一:

查2010年3月份每天的记录(这里date的格式是YYYY-mm-dd hh:mm:ss)

select count(*),substr(t.date,1,10)  from table t where  t.date like '2010-03%' group by substr(t.date,1,10)

例二:

sql 数据分月统计,表中只有每天的数据,现在要求求一年中每个月的统计数据(一条sql)

SELECT
  MONTH (  那个日期的字段  ),
  SUM(  需要统计的字段, 比如销售额什么的 )
FROM
  表
WHERE
  YEAR (  那个日期的字段  ) = 2010   -- 这里假设你要查 2010年的每月的统计。
GROUP BY
 MONTH (  那个日期的字段  )

用SELECT语句对数据进行统计汇总

avg ([ALL|DISTINCT]列名) 求指定数字字段的平均值
sum ([ALL|DISTINCT]列名) 求指定数字字段的总和
max([ALL|DISTINCT]列名) 求指定数字字段中最大值
min ([ALL|DISTINCT]列名) 求指定数字字段中最小值
count([ALL|DISTINCT]列名) 求满足条件记录中指定字段不为空的记录个数
count(*)    求满足条件记录总数
**********************************************************************************************
用GROUP BY子句对记录分类统计汇总
格式:
   GROUP BY 分组字段名列表[HAVING 条件表达式] 
   功能:按指定条件对指定字段依次分组进行统计汇总

注:
   使用GROUP BY 的语句仍可用ORDER BY子句排序 
   但必须在GROUP BY之后可以使用别名但不允许对SELECT没指定的列排序
   HAVING子句是对分组统计后的查询结果进行筛选.
   使用GROUP BY 的select语句仍可用WHERE子句指定条件
**********************************************************************************************
说明:
    Select 指定的字段必须包含且只含GROUP BY子句中指定的分组字段(可以为它指定别名),
    其他必须是由集合函数组成的一个或多个计算列,统计函数中所使用的列不受限制.
    GROUP BY子句中不允许使用字段或计算列的别名,可直接使用表达式.
    GROUP BY子句指定表达式时,select指定的字段中可以不包括该表达式.
    HAVING子句不允许使用别名
    HAVING子句必须和GROUP BY一起使用,且设置的条件必须与GROUP BY 子句指定的分组字段有关

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏乐沙弥的世界

SQL 基础-->SELECT 查询

在SQL 开发工具,SQL 语句能选择分号结束(;) .当你运行多个SQL 语句的时候,需要分号

11120
来自专栏数据库

Java SQL语句优化经验

. (1) 选择最有效率的表名顺序(只在基于规则的seo/' target='_blank'>优化器中有效): ORACLE 的解析器按照从右到左的顺序处理FR...

42590
来自专栏Ryan Miao

group by 和聚合函数

group by 的基本用法                                                                  ...

322110
来自专栏人工智能LeadAI

MySQL的JOIN用法

数据库中的JOIN称为连接,连接的主要作用是根据两个或多个表中的列之间的关系,获取存在于不同表中的数据。连接分为三类:内连接、外连接、全连接。另外还有CROSS...

10720
来自专栏惨绿少年

MySQL-Select语句高级应用

1.1 SELECT高级应用 1.1.1 前期准备工作 本次测试使用的是world数据库,由mysql官方提供下载地址: https://dev.mysql....

33100
来自专栏me的随笔

T-SQL基础(二)之关联查询

表运算符的作用是把为其提供的表作为输入,经过逻辑查询处理,返回一个表结果。SQL Server支持四个表运算符:JOIN、APPLY、PIVOT、UNPIVOT...

15310
来自专栏沃趣科技

MySQL 8.0 新特性之统计直方图

原文链接:https://mysqlserverteam.com/histogram-statistics-in-mysql/

32440
来自专栏GreenLeaves

SQL学习之SELECT子句顺序

下面来总计下之前的随笔中所说过的所有的SELECT子句的顺序。 子句            说明            是否必须使用 SELECT       ...

196100
来自专栏杨建荣的学习笔记

MySQL和Oracle中的隐式转换(r6笔记第45天)

今天在处理一个问题的时候,需要根据其他部门提供的sql语句对一个表中的数据进行了筛查。 语句类似下面的形式 > SELECT MAX_LEVEL,LOGOUT_...

30740
来自专栏猿人谷

Oracle SQL性能优化

(1)      选择最有效率的表名顺序(只在基于规则的优化器中有效): ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,FROM子句中写在最...

47470

扫码关注云+社区

领取腾讯云代金券