T-SQL查询前十条数据相关操作

 

--求某时间段内平均值的前十条的总和

SELECT SUM(Result)

FROM (

           SELECT TOP 10 AVG(Result) AS result 

	   FROM B_Record_DomainNamePage

	   WHERE RecordTime BETWEEN '2010-12-16 13:11:27' AND '2010-12-22 13:11:27'

           GROUP BY Page

           ORDER BY Result DESC

        ) AS temp



 

 

--求除去前十条的某列的总和

SELECT SUM(result)

FROM (

	  SELECT *,ROW_NUMBER() OVER(ORDER BY Result DESC) AS rownum 

	  FROM B_Record_DomainNamePage 

	  WHERE RecordTime BETWEEN '2010-12-16 13:11:27' AND '2010-12-22 13:11:27'

         ) AS temp

WHERE rownum>10



--或者用存储过程实现

ALTER PROC [dbo].[SP_test]	

	as

	begin

	declare @sumall int

	declare @sumother int

	

	select @sumall = sum(result) from B_Record_DomainNamePage

	where RecordTime between '2010-12-16 13:11:27' and '2010-12-22 13:11:27')

	

	select @sumother =sum(result) from 

         (

            select top 10 result 

            from B_Record_DomainNamePage 

            where RecordTime between '2010-12-16 13:11:27' and '2010-12-22 13:11:27'

            ORDER by result desc

         ) as aa



	select @sumall-@sumother

	end 





--执行存储过程

DECLARE	@return_value int



EXEC	@return_value = [dbo].[SP_test]



SELECT	'Return Value' = @return_value

 

 

  
    
1 CREATE PROC [ dbo ] . [ SP_test ]
2 as
3 begin
4 declare @sumall int
5 declare @sumother int
6
7 select @sumall = sum (result) from B_Record_DomainNamePage
8 where RecordTime between ' 2010-12-16 13:11:27 ' and ' 2010-12-22 13:11:27 '
9
10 select @sumother = sum (result) from
11 (
12 select top 10 result
13 from B_Record_DomainNamePage
14 where RecordTime between ' 2010-12-16 13:11:27 ' and ' 2010-12-22 13:11:27 '
15 ORDER by result desc
16 ) as aa
17
18 select @sumall - @sumother
19 end

 

 

 

  
    
1 -- 求前十条后某列的总和
2 SELECT SUM (result) FROM (
3 SELECT * ,ROW_NUMBER() OVER ( ORDER BY Result DESC ) AS rownum
4 FROM B_Record_DomainNamePage
5 WHERE domainname = ' www.jssdw.com ' AND [ type ] = ' inpage '
6 AND (RecordTime BETWEEN ' 2010-12-16 13:11:27.833 ' AND ' 2010-12-22 13:11:27.833 ' )) AS temp
7 WHERE rownum > 10

你可能感兴趣的:(t-sql)