<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        頁面PV按照年月日小時統計的存儲過程

        來源:懂視網 責編:小采 時間:2020-11-09 16:16:17
        文檔

        頁面PV按照年月日小時統計的存儲過程

        頁面PV按照年月日小時統計的存儲過程:需求:需要做一個統計 網站是這樣的:網站上有 視頻頻道、圖片頻道、新聞頻道等 需要做一個統計,能夠統計這幾個頻道 中每個資源 某個小時、 某天、某周、某月、某年、總的 訪問的次數 從上述需求看,只要統計每個資源,一天24 個小時的訪問量 然后分類匯總就
        推薦度:
        導讀頁面PV按照年月日小時統計的存儲過程:需求:需要做一個統計 網站是這樣的:網站上有 視頻頻道、圖片頻道、新聞頻道等 需要做一個統計,能夠統計這幾個頻道 中每個資源 某個小時、 某天、某周、某月、某年、總的 訪問的次數 從上述需求看,只要統計每個資源,一天24 個小時的訪問量 然后分類匯總就

        需求:需要做一個統計 網站是這樣的:網站上有 視頻頻道、圖片頻道、新聞頻道等 需要做一個統計,能夠統計這幾個頻道 中每個資源 某個小時、 某天、某周、某月、某年、總的 訪問的次數 從上述需求看,只要統計每個資源,一天24 個小時的訪問量 然后分類匯總就

        需求:需要做一個統計
        網站是這樣的:網站上有 視頻頻道、圖片頻道、新聞頻道 等

        需要做一個統計,能夠統計這幾個頻道 中每個資源 某個小時、 某天、某周、某月、某年、總的 訪問的次數

        從上述需求看,只要統計每個資源,一天24 個小時的訪問量 然后分類匯總就可以 算出 某天、某周、某月、某年、總的 范圍的次數

        原理就是這樣。


        表結構如下:
        [Channel] 頻道表
        ID
        Name //頻道名稱

        [Video] 視頻表
        ID
        ...

        [Photo] 圖庫表
        ID
        ...

        [News] 新聞表
        ID
        ...


        存儲過程用了下面的兩張表詳細的寫下:

        [PV] 表
        [ID] [int] IDENTITY(1,1) NOT NULL, [ChannelID] [int] NOT NULL,//頻道ID [SourceID] [int] NOT NULL,//源ID [Times] [int] NOT NULL,//次數 [Y] [smallint] NULL,//年 如 2000 [M] [tinyint] NULL,//月 如 12 [W] [tinyint] NULL,//周 如 50 [D] [tinyint] NULL,//日 如 21 [H] [tinyint] NULL//小時 如 16


        [PVS] 匯總結果表 [ID] [int] IDENTITY(1,1) NOT NULL, [ChannelID] [int] NOT NULL,//頻道ID [SourceID] [int] NOT NULL,//源ID [HourRate] [float] NULL,//當前小時與上個小時相比上升的速率 [HourTimes] [int] NULL,//當前小時訪問的次數 [DayRate] [float] NULL,//今天與昨天相比上升的速率 [DayTimes] [int] NULL,//今天訪問的次數 [WeekRate] [float] NULL,//當周與上周相比上升的速率 [WeekTimes] [int] NULL,//當周訪問的次數 [MonthRate] [float] NULL,//當月與上月相比上升的速率 [MonthTimes] [int] NULL,//當周訪問的次數 [YearRate] [float] NULL,//今年與上一年相比上升的速率 [YearTimes] [int] NULL,//今年訪問的次數 [Total] [int] NULL//訪問的總次數






        <無> $velocityCount-->
        -- =============================================
        -- Author:	
        -- Create date: 
        -- Description:	
        -- =============================================
        CREATE proc [dbo].[procCountPV](
        @ChannelID nvarchar(50),
        @SourceID int
        )
        as
        begin
        	declare @TEMID int; --臨時ID
        	declare @Now datetime;
        	set @Now = GETDATE();
        	
        	declare @Y smallint;--年
        	declare @M tinyint;--月
        	declare @W tinyint;--周
        	declare @D tinyint;--日
        	declare @H tinyint;--小時
        	
        	set @Y = DATEPART(YY,@Now);
        	set @M = DATEPART(MM,@Now);
        	set @W = DATEPART(WW,@Now);
        	set @D = DATEPART(DD,@Now);
        	set @H = DATEPART(HH,@Now);
        	
        	
        	select @TEMID = [ID] from [PV] where [ChannelID] = @ChannelID and [SourceID]=@SourceID and [Y] = @Y and [M]=@M and [D]=@D and [H] = @H;
        	
        	if @TEMID is null
        	Insert into [PV]([ChannelID],[SourceID],[Times],[Y],[M],[W],[D],[H]) values(@ChannelID ,@SourceID,1,@Y,@M,@W,@D,@H);
        	else
        	Update [PV] set [Times] = [Times]+1 where [ID]= @TEMID;	
        	
        	/*計算現在*/
        	Declare @NowHourTimes int;
        	Declare @NowDayTimes int;
        	Declare @NowWeekTimes int;
        	Declare @NowMonthTimes int;
        	Declare @NowYearTimes int;
        	
        	--Y M D H
        	select @NowHourTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = @Y and [M]=@M and [D]=@D and [H] = @H;	
        	
        	--Y M D
        	select @NowDayTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = @Y and [M]=@M and [D]=@D;	
        	
        	--Y W
        	select @NowWeekTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = @Y and [W]=@W;
        	
        	--Y M
        	select @NowMonthTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = @Y and [M]=@M;
        	
        	--Y
        	select @NowYearTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = @Y;
        	
        	
        	if @NowHourTimes is null
        	set @NowHourTimes = 0;
        	
        	if @NowDayTimes is null
        	set @NowDayTimes = 0;
        
        	if @NowWeekTimes is null
        	set @NowWeekTimes = 0;
        
        	if @NowMonthTimes is null
        	set @NowMonthTimes = 0;
        
        	if @NowYearTimes is null
        	set @NowYearTimes = 0;
        	
        	
        	
        	
        	/*計算之前*/
        	Declare @PreHourTimes int;
        	Declare @PreDayTimes int;
        	Declare @PreWeekTimes int;
        	Declare @PreMonthTimes int;
        	Declare @PreYearTimes int;
        	
        	
        	
        	--Y M D H
        	Declare @PreHourDateTime datetime;
        	set @PreHourDateTime = DATEADD(HH,-1,@Now);
        	
        	select @PreHourTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = DATEPART(YY,@PreHourDateTime) and [M]=DATEPART(MM,@PreHourDateTime) and [D]=DATEPART(DD,@PreHourDateTime) and [H] = DATEPART(HH,@PreHourDateTime);	
        	
        	--Y M D
        	Declare @PreDayDateTime datetime;
        	set @PreDayDateTime = DATEADD(DD,-1,@Now);
        	
        	select @PreDayTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = DATEPART(YY,@PreDayDateTime) and [M]=DATEPART(MM,@PreDayDateTime) and [D]=DATEPART(DD,@PreDayDateTime);	
        	
        	--Y W
        	Declare @PreWeekDateTime datetime;
        	set @PreWeekDateTime = DATEADD(WW,-1,@Now);
        
        	select @PreWeekTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = DATEPART(YY,@PreWeekDateTime) and [W]= DATEPART(WW,@PreWeekDateTime);
        	
        	--Y M
        	Declare @PreMonthDateTime datetime;
        	set @PreMonthDateTime = DATEADD(MM,-1,@Now);
        	select @PreMonthTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = DATEPART(YY,@PreMonthDateTime) and [M]= DATEPART(MM,@PreMonthDateTime);
        	
        	--Y
        	select @PreYearTimes = SUM([Times]) from [PV] where ChannelID = @ChannelID and SourceID = @SourceID and [Y] = @Y - 1;
        	
        	
        	if @PreHourTimes is null
        	set @PreHourTimes = 0;
        	
        	if @PreDayTimes is null
        	set @PreDayTimes = 0;
        
        	if @PreWeekTimes is null
        	set @PreWeekTimes = 0;
        
        	if @PreMonthTimes is null
        	set @PreMonthTimes = 0;
        
        	if @PreYearTimes is null
        	set @PreYearTimes = 0;
        
        	
        	declare @HourRate float;
        	declare @DayRate float;
        	declare @WeekRate float;
        	declare @MonthRate float;
        	declare @YearRate float;
        	
        	set @HourRate = 0;
        	set @DayRate = 0;
        	set @WeekRate = 0;
        	set @MonthRate = 0;
        	set @YearRate = 0;
        	
        	if @PreHourTimes > 0 
        	set @HourRate = ( @NowHourTimes - @PreHourTimes )/ (@PreHourTimes+0.0);	
        	
        	if @PreDayTimes > 0 
        	set @DayRate = ( @NowDayTimes - @PreDayTimes )/ (@PreDayTimes+0.0);
        	
        	if @PreWeekTimes > 0 
        	set @WeekRate = ( @NowWeekTimes - @PreWeekTimes )/ (@PreWeekTimes+0.0);
        	
        	if @PreMonthTimes > 0 
        	set @MonthRate = ( @NowMonthTimes - @PreMonthTimes )/ (@PreMonthTimes+0.0);
        	
        	if @PreYearTimes > 0 
        	set @YearRate = ( @NowYearTimes - @PreYearTimes )/ (@PreYearTimes+0.0);
        	
        
        
        	
        	
        	/*計算總量*/
        	declare @Total int;
        	select @Total = SUM([Times]) From [PV] where ChannelID = @ChannelID and SourceID = @SourceID;
        	if @Total is null
        	set @Total = 0;	
        	
        	declare @TempID int;
        	set @TempID = null;
        	
        	/*操作CountSummary*/	
        	Select @TempID = ID from [PVS]	where ChannelID = @ChannelID and SourceID = @SourceID;
        	if @TempID is null 	
        	Insert into [PVS]([ChannelID],[SourceID],[HourRate],[HourTimes],[DayRate],[DayTimes],[WeekRate],[WeekTimes],[MonthRate],[MonthTimes],[YearRate],[YearTimes],[Total]) 
        	Values(@ChannelID,@SourceID,@HourRate,@NowHourTimes,@DayRate,@NowDayTimes,@WeekRate,@NowWeekTimes,@MonthRate,@NowMonthTimes,@YearRate,@NowYearTimes,@Total);
        	else	
        	Update [PVS] set [HourRate]=@HourRate,[HourTimes]=@NowHourTimes,[DayRate]=@DayRate,[DayTimes]=@NowDayTimes,[WeekRate]=@WeekRate,[WeekTimes]=@NowWeekTimes,[MonthRate]=@MonthRate,[MonthTimes]=@NowMonthTimes,[YearRate]=@YearRate,[YearTimes]=@NowYearTimes,[Total]=@Total where ID = @TempID;	
        end
        
        GO
        
        
        CREATE TABLE [dbo].[PV](
        	[ID] [int] IDENTITY(1,1) NOT NULL,
        	[ChannelID] [int] NOT NULL,
        	[SourceID] [int] NOT NULL,
        	[Times] [int] NOT NULL,
        	[Y] [smallint] NULL,
        	[M] [tinyint] NULL,
        	[W] [tinyint] NULL,
        	[D] [tinyint] NULL,
        	[H] [tinyint] NULL,
         CONSTRAINT [PK_PV] PRIMARY KEY CLUSTERED 
        (
        	[ID] ASC
        )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
        ) ON [PRIMARY]
        
        GO
        
        ALTER TABLE [dbo].[PV] ADD CONSTRAINT [DF_PV_Times] DEFAULT ((0)) FOR [Times]
        GO
        
        ALTER TABLE [dbo].[PV] ADD CONSTRAINT [DF_PV_Y] DEFAULT ((2000)) FOR [Y]
        GO
        
        ALTER TABLE [dbo].[PV] ADD CONSTRAINT [DF_PV_M] DEFAULT ((1)) FOR [M]
        GO
        
        ALTER TABLE [dbo].[PV] ADD CONSTRAINT [DF_PV_W] DEFAULT ((1)) FOR [W]
        GO
        
        ALTER TABLE [dbo].[PV] ADD CONSTRAINT [DF_PV_D] DEFAULT ((1)) FOR [D]
        GO
        
        ALTER TABLE [dbo].[PV] ADD CONSTRAINT [DF_PV_H] DEFAULT ((0)) FOR [H]
        GO
        
        
        CREATE TABLE [dbo].[PVS](
        	[ID] [int] IDENTITY(1,1) NOT NULL,
        	[ChannelID] [int] NOT NULL,
        	[SourceID] [int] NOT NULL,
        	[HourRate] [float] NULL,
        	[HourTimes] [int] NULL,
        	[DayRate] [float] NULL,
        	[DayTimes] [int] NULL,
        	[WeekRate] [float] NULL,
        	[WeekTimes] [int] NULL,
        	[MonthRate] [float] NULL,
        	[MonthTimes] [int] NULL,
        	[YearRate] [float] NULL,
        	[YearTimes] [int] NULL,
        	[Total] [int] NULL,
         CONSTRAINT [PK_PVS] PRIMARY KEY CLUSTERED 
        (
        	[ID] ASC
        )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
        ) ON [PRIMARY]
        
        GO
        

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        頁面PV按照年月日小時統計的存儲過程

        頁面PV按照年月日小時統計的存儲過程:需求:需要做一個統計 網站是這樣的:網站上有 視頻頻道、圖片頻道、新聞頻道等 需要做一個統計,能夠統計這幾個頻道 中每個資源 某個小時、 某天、某周、某月、某年、總的 訪問的次數 從上述需求看,只要統計每個資源,一天24 個小時的訪問量 然后分類匯總就
        推薦度:
        標簽: 一個 過程 頁面
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久久青草青青国产亚洲免观 | 91免费播放人人爽人人快乐| 亚洲xxxx18| 亚洲精品无码专区在线| 免费av一区二区三区| 成人免费一级毛片在线播放视频 | 99免费精品视频| 亚洲五月综合缴情在线观看| 在线观看片免费人成视频无码| 国产1000部成人免费视频| 亚洲美女中文字幕| 国产免费AV片在线播放唯爱网| 亚洲一级片在线播放| sihu国产精品永久免费| 亚洲精品在线免费看| 中文字幕亚洲激情| 两性色午夜视频免费播放| 免费的一级黄色片| 黄色网页免费观看| 亚洲国产成人一区二区精品区| 91视频免费网址| 亚洲人成无码网站在线观看| 亚洲A丁香五香天堂网| a级毛片免费全部播放无码| 亚洲精品动漫在线| 免费91麻豆精品国产自产在线观看 | 亚洲另类少妇17p| 国产精品免费福利久久| 亚洲国产成人精品无码一区二区| 亚洲精品国产日韩无码AV永久免费网 | 99热在线日韩精品免费| 亚洲视频国产精品| 国产免费啪嗒啪嗒视频看看| 亚洲三级在线播放| 亚洲成AV人在线观看网址| 精品免费视在线观看| 亚洲中文字幕AV每天更新| 国产亚洲AV夜间福利香蕉149| 巨波霸乳在线永久免费视频| 亚洲av永久中文无码精品综合| 免费AA片少妇人AA片直播|