以下实例用来通过DeviceID分组然后DeviceTime排序 每次9个9个放进新表中:

USE [LoadTestManager]
GO

/****** Object:  StoredProcedure [dbo].[uspSortDataForBattery]    Script Date: 12/30/2016 1:03:50 AM ******/
SET ANSI_NULLS ON
GO

SET QUOTED_IDENTIFIER ON
GO


CREATE PROCEDURE [dbo].[uspSortDataForBattery]
    
AS
BEGIN

declare @i int
declare @j int
select @j=count(1)/10 from  [dbo].[DataPointGeoBattery]
set @i=1

while @i < @j
begin

Insert INTO NewDataPointGeoBattery
select BB.[DeviceID]
      ,BB.[RequestID]
      ,BB.[DeviceTime]
      ,BB.[ReceiveTime]
      ,BB.[BatteryInternal]
      ,BB.[RowModifiedOn]
      ,BB.[RowCreatedOn]
from (select B.*,
               rank() over(partition by B.DeviceID order by B.DeviceTime) rk
          from [DataPointGeoBattery] B )BB
where BB.rk < 10;


DELETE from [DataPointGeoBattery] WHERE
 ID IN
(
 select BB.ID
 from (select B.*,
               rank() over(partition by B.DeviceID order by B.DeviceTime) rk
          from [DataPointGeoBattery] B )BB
 where BB.rk < 10);

set @i=@i+1

end


    SET NOCOUNT ON;
END

GO
View Code

相关文章:

  • 2021-09-28
  • 2021-05-05
  • 2021-08-18
  • 2021-03-30
  • 2021-12-04
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-01-20
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2021-06-29
相关资源
相似解决方案