Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/40: Рейтинг темы: голосов - 40, средняя оценка - 4.80
1 / 1 / 0
Регистрация: 25.03.2013
Сообщений: 129
1

Группировка данных по временным интервалам

29.06.2017, 13:26. Показов 7290. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите, имеется таблица с данными показаний датчиков вида - дата время и значение показаний, необходимо произвести группировку этих показаний за период времени 10 мин., час, сутки и т.д...

Вид таблицы следующий:
Группировка данных по временным интервалам


Результат хотелось бы получить в следующем виде:
Группировка данных по временным интервалам


Пример SQL запроса следующий:
SQL
1
SELECT  Pulses.date, SUM(energy), SUM(duration) FROM Pulses RIGHT JOIN Hour_Tabel ON Pulses.date = Hour_Tabel.date WHERE sensorID IN (SELECT sensorID FROM Sensors WHERE regionID='1') AND Pulses.date BETWEEN '05-01-2017' AND '25-06-2017' GROUP BY Pulses.date
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.06.2017, 13:26
Ответы с готовыми решениями:

Группировка по временным интервалам
Подскажите сделать группировку по некоторым временным интервалам какого нибудь параметра из таблицы...

Группировка данных по временным интервалам
Всем привет. Встала такая задача, что нужно некоторые эмпирические данные привязанные ко времени...

Привязка данных по дням к недельным интервалам
Ребята, всем привет:) Есть исходная форма отчета, где каждая операция по продаже привязана к коду...

Алгоритм группировки данных для графика по интервалам времени
Строю график на MC, имею постоянный поток значении привязанных к времени. Типа 1.2 2016 06 12...

2
5395 / 4323 / 1060
Регистрация: 29.08.2013
Сообщений: 27,129
Записей в блоге: 3
29.06.2017, 13:57 2
вот так выводите время по 10 минут
SQL
1
2
3
4
5
6
7
8
9
10
11
SELECT дата
     , datepart(HOUR,время)
     , CASE 
         WHEN datepart(MINUTE,время) BETWEEN 0 AND 9 THEN 1
         WHEN datepart(MINUTE,время) BETWEEN 10 AND 19 THEN 2
         WHEN datepart(MINUTE,время) BETWEEN 20 AND 29 THEN 3
         WHEN datepart(MINUTE,время) BETWEEN 30 AND 39 THEN 4
         WHEN datepart(MINUTE,время) BETWEEN 40 AND 49 THEN 5
         WHEN datepart(MINUTE,время) BETWEEN 50 AND 59 THEN 6
       END
     , время
потом группируете по 1,2,3,4,5,6
0
3499 / 2083 / 742
Регистрация: 02.06.2013
Сообщений: 5,078
29.06.2017, 15:07 3
T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
if object_id('tempdb.#t', 'U') is not null
 drop table #t;
go
 
select create_date as dt, schema_id as v into #t from sys.objects;
go
 
declare @interval int = 10;
 
select top (1000)
 cast(b.ds as date) as d,
 min(e.interval) as interval,
 sum(v)
from
 #t a cross apply
 (select dateadd(mi, (datediff(mi, '1900', dt) / @interval) * @interval, '1900')) b(ds) cross apply
 (select dateadd(mi, @interval, b.ds)) c(de) cross apply
 (
  select
   case
    when cast(b.ds as date) = cast(c.de as date) then convert(varchar(30), b.ds, 108) + ' - ' + convert(varchar(30), c.de, 108)
    else convert(varchar(30), b.ds, 120) + ' - ' + convert(varchar(30), c.de, 120)
   end
 ) e(interval)
group by
 b.ds
order by
 b.ds;
go
 
drop table #t;
go
0
29.06.2017, 15:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.06.2017, 15:07
Помогаю со студенческими работами здесь

Группировка данных
Использую ADO, как мне произвести группировку данных? Пробовал через GROUP BY в ADOQuerry ошибка ...

Группировка данных
Всем привет. Проблема с группировкой данных. Есть люди (таблица Главная - ФИО), у этих людей есть...

Группировка данных
Здравствуйте. Подскажите пожалуйста, каким образом можно вывести данные из такой структуры без...

Группировка данных
Добрый день. Новичок в WPF. Можно ли сгруппировать несколько grid. Что бы у меня была группа из...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru