zoukankan      html  css  js  c++  java
  • 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 
    关注博客 https://www.cnblogs.com/aknife/
  • 相关阅读:
    在LoadRunner向远程Linux/Unix执行命令行并收集性能数据
    在LoadRunner中执行命令行程序之:popen()取代system()
    Linux基础--分类与合并命令
    sed and awk学习笔记
    vim操作
    生命是一种长期而持续的累积过程
    SQL Server数据导入导出的几种方法
    Http协议
    LeetCode 470. 用 Rand7() 实现 Rand10()(Implement Rand10() Using Rand7())
    LeetCode 238. 除自身以外数组的乘积( Product of Array Except Self)
  • 原文地址:https://www.cnblogs.com/aknife/p/14918462.html
Copyright © 2011-2022 走看看