У меня есть сценарий, в котором мне требуется среднее значение столбца использования за 15 секунд и суммирование до одного часа. для конкретного MID, SID и PID. Теперь я делаю это, увеличивая цикл времени на 15 секунд dateadd (второй, 15, @StartTime), но это очень медленно. Пожалуйста, предложите лучшее решение. См. Таблицу ниже.Среднее значение столбца за 15 секунд
CREATE TABLE [dbo].[SampleData](
[MID] [varchar](50) NOT NULL,
[StartTime] [datetime] NOT NULL,
[SID] [int] NOT NULL,
[PID] [int] NOT NULL,
[Usage] [decimal](10, 4) NOT NULL
) ON [PRIMARY]
enter code here
Выборочные данные
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500001068 AS DateTime), 1, 1, CAST(27.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A645000020D0 AS DateTime), 1, 1, CAST(40.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500003138 AS DateTime), 1, 1, CAST(98.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A645000041A0 AS DateTime), 1, 1, CAST(58.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A6450010CCC8 AS DateTime), 1, 1, CAST(74.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A6450010DD30 AS DateTime), 1, 1, CAST(42.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A6450010ED98 AS DateTime), 1, 1, CAST(34.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A6450010FE00 AS DateTime), 1, 1, CAST(36.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500218928 AS DateTime), 1, 1, CAST(84.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500219990 AS DateTime), 1, 1, CAST(19.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A6450021A9F8 AS DateTime), 1, 1, CAST(40.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A6450021BA60 AS DateTime), 1, 1, CAST(48.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500324588 AS DateTime), 1, 1, CAST(97.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A645003255F0 AS DateTime), 1, 1, CAST(48.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500326784 AS DateTime), 1, 1, CAST(60.0000 AS Decimal(10, 4)))
INSERT [dbo].[SampleData] ([MID], [StartTime], [SID], [PID], [Usage]) VALUES (N'77', CAST(0x0000A64500327DC8 AS DateTime), 1, 1, CAST(48.0000 AS Decimal(10, 4)))
Некоторые образцы данных и желаемые результаты были бы полезны –
Не могли бы вы также добавить свой текущий код, который включает в себя цикл. – trincot
Вы имеете в виду: среднее значение столбца использования ** каждые ** 15 секунд? – Parfait