【转】SQL语句统计每天、每月、每年的数据
原文:https://www.cnblogs.com/Fooo/p/3435687.html
SQL语句统计每天、每月、每年的数据
1、每年 |
sql题 如何统计查询一个月中每天的记录
怎么写啊?写出来啊! 比如说要查2010年3月份每天的记录
答案
select count(*),substr(t.date,1,10) from table t where t.date like '2010-03%' group by substr(t.date,1,10)
这里date的格式是YYYY-mm-dd hh:mm:ss
sql 数据分月统计,表中只有每天的数据,现在要求求一年中每个月的统计数据(一条sql)
SELECT
MONTH ( 那个日期的字段 ),
SUM( 需要统计的字段, 比如销售额什么的 )
FROM
表
WHERE
YEAR ( 那个日期的字段 ) = 2010 -- 这里假设你要查 2010年的每月的统计。
GROUP BY
MONTH ( 那个日期的字段 )
用SELECT语句对数据进行统计汇总
用SELECT语句对数据进行统计汇总
集合函数(聚合函数,统计函数)
为了有效处理查询得到的数据集合,SQL Server提供了一系列统计函数.
这些函数可以实现数据集合和汇总:
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 子句指定的分组字段有关
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了