SQL 按 年 季 月 统计

按年
SELECT year(CreationTime) 年次, count(1) 数据条数, sum(Num) 字段合计 FROM Orders GROUP BY year(CreationTime)
--按季统计 
SELECT datepart(quarter, CreationTime) 季次, count(1) 数据条数, sum(Num) 合计
FROM Orders 
WHERE year(CreationTime)=year(getdate()) 
GROUP BY datepart(quarter, CreationTime) 
--按月统计 
SELECT convert(char(7), CreationTime, 120) 月份,count(1) 数据条数, 数据合计=sum(Num) 
FROM Orders
GROUP BY convert(char(7), CreationTime, 120) 
复制代码
--按日统计 
SELECT Convert(varchar(10),CreationTime,23) 日期, count(1) 销售次数, sum(Num) 销售量
FROM Orders
GROUP BY Convert(varchar(10), CreationTime, 23) 

--按日统计 out
日期            销售次数    销售量
2021-04-21    1    98
2021-04-24    1    82
2021-04-28    1    91
2021-05-01    1    98
2021-05-02    1    84
2021-05-05    1    76
2021-05-08    2    115
2021-05-10    1    32
2021-05-11    1    48
2021-05-12    1    39


--按周统计 (年度周次)
SELECT datepart(week, CreationTime) 周次, count(1) 销售次数, sum(Num) 销售量
FROM Orders 
WHERE year(CreationTime)=year(getdate()) 
GROUP BY datepart(week, CreationTime) 

--按周统计 (年度周次) out
周次    销售次数    销售量
17    2    180
18    2    189
19    4    275
20    3    119

--按周统计 (月份周次)
SELECT weekName 周次,count(1) 销售次数, sum(Num) 销售量 from (
SELECT cast(datepart(month,CreationTime) as varchar(2)) + '月第'+ cast((datepart(week,CreationTime) - datepart(week,convert(varchar(7),CreationTime,120) + '-01') + 1) as varchar(2)) + ''  weekName,Num
FROM Orders 
WHERE year(CreationTime)=year(getdate()) 
)tb
GROUP BY weekName 


--可以创建函数来获取周次
CREATE FUNCTION fn_getweek
(
    @date datetime
)
RETURNS nvarchar(50)
AS
BEGIN
    DECLARE @result nvarchar(50)
    select @result=cast(datepart(mm,@date) as varchar(2)) + '月第' + cast((datepart(wk,@date) - datepart(wk,convert(varchar(7),@date,120) + '-01') + 1) as varchar(2)) + '';
    -- Return the result of the function
    RETURN @result
END
GO
SELECT weekName 周次,count(1) 销售次数, sum(Num) 销售量 from (
SELECT dbo.fn_getweek(CreationTime) weekName,Num
FROM Orders 
WHERE year(CreationTime)=year(getdate()) 
)tb
GROUP BY weekName 
复制代码

 

posted @   ___mouM  阅读(377)  评论(1编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示