分别按照 日期:时: 天:月:年进行统计信息-阿里云开发者社区

开发者社区> 立平> 正文

分别按照 日期:时: 天:月:年进行统计信息

简介: CREATE  PROC [dbo].tongjixinxi   @KeywordId int,   @Type int=0 --0:日-4,8,12,16,20,24    --1:周-1,2,3,4,5,6,7    --2:月-5,10,15,20,25,di    --3:年-3,,6,9,...
+关注继续查看

CREATE  PROC [dbo].tongjixinxi
   @KeywordId int,
   @Type int=0 --0:日-4,8,12,16,20,24
    --1:周-1,2,3,4,5,6,7
    --2:月-5,10,15,20,25,di
    --3:年-3,,6,9,12

   --@TotalInfo int output
AS
BEGIN
 DECLARE @PageTemp1 table
    (
        Pid Int,
        KeywordId INT,
     Title varchar(255),
  Brief varchar(255),
  Link varchar(255),
  CreatedDate datetime,
  LastUpdatedDate datetime 
    )
    DECLARE @PageTemp2 table
    (
        Pid Int,
        KeywordId INT,
     Title varchar(255),
  Brief varchar(255),
  Link varchar(255),
  CreatedDate datetime,
  LastUpdatedDate datetime 
    )
    INSERT INTO @PageTemp1  SELECT P.Id,T.KeywordId,T.Title,P.Brief,P.Link,P.CreatedDate,P.LastUpdatedDate FROM PageSnapTitles T inner JOIN PageSnaps P  ON T.Id=P.TitleId where T.KeywordId=@KeywordId
  IF(@Type=0) --0:日-4,8,12,16,20,24----NOTE:此处为测试使用;等项目完成;正式使用该存储过程可删去;
  BEGIN
   DECLARE @num INT
   SELECT  @num=COUNT(*) FROM PageSnaps WHERE DAY(LastUpdatedDate) =DAY(GETDATE())-1
     IF(@num>3)
     BEGIN
      SELECT DATEPART(HOUR,T.LastUpdatedDate) AS 'Date',COUNT(T.Pid) AS PsCount FROM
      (SELECT * FROM @PageTemp1 WHERE DATEPART(HOUR,LastUpdatedDate)
      BETWEEN DATEPART(HOUR,GETDATE()) AND DATEPART(HOUR,GETDATE())-24) AS T
      GROUP BY DATEPART(HOUR,LastUpdatedDate)
      ORDER BY DATEPART(HOUR,LastUpdatedDate) asc
     END
     ELSE
     BEGIN
        SELECT DATEPART(HOUR,LastUpdatedDate) AS 'Date',COUNT(*) AS PsCount FROM @PageTemp1 GROUP BY DATEPART(HOUR,LastUpdatedDate) ORDER BY DATEPART(HOUR,LastUpdatedDate) asc
     END
  END
  ELSE IF(@Type=1)-----1:周-1,2,3,4,5,6,7
  BEGIN
  select datename(weekday,T.LastUpdatedDate)AS 'Date',COUNT(T.Pid) AS PsCount
   from (SELECT * FROM @PageTemp1 WHERE  DATEPART(WEEK,LastUpdatedDate)
   BETWEEN DATEPART(WEEK,GETDATE()) AND DATEPART(WEEK,GETDATE())+1) AS T ----为了验证数据有待修改
   GROUP BY DATENAME(weekday,T.LastUpdatedDate) ORDER BY datename(weekday,T.LastUpdatedDate)
   ASC
  END
     ELSE IF(@Type=2)--2:月-5,10,15,20,25,di
  BEGIN
   SELECT convert(varchar(10),LastUpdatedDate,120) as 'Date', count(Pid) as PsCount from @PageTemp1
   group by convert(varchar(10),LastUpdatedDate,120)
   order By convert(varchar(10),LastUpdatedDate,120) ASC
  END
  ELSE IF(@Type=3)--3:年-3,,6,9,12
  BEGIN
    SELECT DATENAME(YEAR,T.LastUpdatedDate) AS 'Date',COUNT(T.Pid) AS PsCount FROM
    (SELECT *FROM @PageTemp1 WHERE YEAR(LastUpdatedDate)
    BETWEEN YEAR(DATEADD(YEAR,-10,getdate())) AND YEAR(getdate()))AS T GROUP BY 
    DATENAME(YEAR,T.LastUpdatedDate) ORDER BY  DATENAME(YEAR,T.LastUpdatedDate) ASC   
  END
 END

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
PG+MySQL第12课
数据库使用者了解数据库的高级功能后,才能在业务场景里面使用,来提升整体的生产效率
8 0
探索Flutter_Image显示Webp逻辑
简介 最近探索了一下新增Flutter的Image widget对webp做一个stopAnimation的拓展的Api,顺便了解一下Image整个结构和对一些多帧图片的处理。 我们先看看Image的一个类图结构。
10 0
PG+MySQL第13课
数据库使用者了解数据库的高级功能后,才能在业务场景里面使用,来提升整体的生产效率。
6 0
PG+MySQL第10课-多维组合搜索
多维组合查询也是pg非常擅长的产品,它的解决方法或者优化方法非常的多,并且也具备了跟搜索引擎一样的倒排索引技术,可以便捷有效地解决任意字段组合查询的业务场景诉求
7 0
在一家独角兽公司做业务中台:打铁硬,不跟风
在一家独角兽公司做业务中台:打铁硬,不跟风
8 0
中台的问题,是技术的问题,还是人的问题
中台的问题,是技术的问题,还是人的问题
4 0
PG+MySQL第14课
数据库使用者了解数据库的高级功能后,才能在业务场景里面使用,来提升整体的生产效率。
11 0
PG+MySQL第11课-多维向量搜索
多维向量搜索不仅可以用在特征值的相似圈选这类场景,还可以用在图像识别场景。而不同的向量支持不同的距离算法,如cube、imgsmlr和pase.
8 0
+关注
立平
7年工作经验,山大毕业 软件研发 从事前端和数据分析工作。
29
文章
1
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载