1、每年
select year(ordertime) as year,count(*) as count
from 订单表
group by year(ordertime)
select year(ordertime) as year,
month(ordertime) as month,
sum(Total) as sun_total
from 订单表
group by year(ordertime),
month(ordertime)
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( 需要统计的字段, 比如销售额什么的 )
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子句指定条件
**********************************************************************************************