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

转载于:https://www.cnblogs.com/pfs1314/archive/2010/12/21/1912598.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值