Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите написать запрос. / 12 сообщений из 12, страница 1 из 1
25.05.2015, 20:47:12
    #38968205
Set666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
В общем есть таблица, в которою постоянно поступают данные с периодичностью 1 запись в минуту. В ней есть поля id - ключевое поле, name - какое то значение, ds - дата время создания записи.
Необходимо в этой таблице вычислить моменты, когда данные не поступали в неё в течении 10 минут.
Результат выборки должен быть такой:

id - последней записи перед 10 минутным периодом
id - первой записи после 10 минутного периода
ds - время последней записи перед 10 минутным периодом
ds - время первой записи после 10 минутного периода
...
Рейтинг: 0 / 0
25.05.2015, 21:36:44
    #38968230
TREY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
Set666,

не проще сделать графики?
...
Рейтинг: 0 / 0
25.05.2015, 21:48:49
    #38968235
Set666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
авторне проще сделать графики?

Это как ?
...
Рейтинг: 0 / 0
25.05.2015, 22:22:01
    #38968241
TREY
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
Set666,

ну это же для наглядности , а не для отчета ?
...
Рейтинг: 0 / 0
25.05.2015, 22:34:04
    #38968244
retvizan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
Set666,
Код: sql
1.
2.
3.
4.
select * from
(SELECT @id before_id, @ds before_ds, t.*, @id:=id id, @ds:=ds ds
FROM `таблица` t, (select @id:=0, @ds:=0) x order by ds) t1
where ds-before_ds > 10ти минут;



или подзапросами

Код: sql
1.
2.
3.
4.
5.
6.
SELECT (select ds from `таблица` t1 where t1.ds<t.ds order by 1 desc limit 1) before_ds,
(select id from `таблица` t1 where t1.ds<t.ds order by 1 desc limit 1) before_id,
id, ds
FROM `таблица` t
where (ds - (select ds from `таблица` t1 where t1.ds<t.ds order by 1 desc limit 1)) > 10 минут
order by ds;
...
Рейтинг: 0 / 0
25.05.2015, 23:22:06
    #38968259
Set666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
авторну это же для наглядности , а не для отчета ?
Как раз та ки для отчёта.
...
Рейтинг: 0 / 0
26.05.2015, 09:13:20
    #38968338
lamer yuga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
Set666 ,
Код: sql
1.
2.
3.
select *
from myTable a
join myTable b on b.id=a.id+1 and a.ds + interval 10 minute >= b.ds
...
Рейтинг: 0 / 0
26.05.2015, 09:32:15
    #38968345
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
lamer yuga
Код: sql
1.
2.
from myTable a
join myTable b on b.id=a.id+1


Нет гарантии непрерывности значений ID. Ненадёжно.
...
Рейтинг: 0 / 0
26.05.2015, 10:04:20
    #38968373
lamer yuga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
AkinaНет гарантии непрерывности значений ID. Ненадёжно.прямо следует из постановки задачи: нет редактирования. нет удаления. добавление по 1 элементу не чаще 1 раза в минуту

Решать автору, он лучше знает условия эксплуатации ;-)
...
Рейтинг: 0 / 0
26.05.2015, 10:16:04
    #38968382
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
lamer yugaпрямо следует из постановки задачи: нет редактирования. нет удаления. добавление по 1 элементу не чаще 1 раза в минуту
И Вы готовы голову прозакладывать за то, что "дырок" не будет ни при каких обстоятельствах? вот не советую...
...
Рейтинг: 0 / 0
26.05.2015, 11:13:19
    #38968439
lamer yuga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
Akinalamer yugaпрямо следует из постановки задачи: нет редактирования. нет удаления. добавление по 1 элементу не чаще 1 раза в минуту
И Вы готовы голову прозакладывать за то, что "дырок" не будет ни при каких обстоятельствах? вот не советую...еще раз
lamer yugaРешать автору, он лучше знает условия эксплуатации ;-)А как один из вариантов - имеет право быть озвученным
...
Рейтинг: 0 / 0
01.06.2015, 21:26:59
    #38973804
Set666
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите написать запрос.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select *
from
(
			select c.id, 
                   c.id_device,
                   c.datecreate, 
				   c.ds - max(c2.ds) dip_sec
			from cash_archive c inner join cash_archive c2 on c.id_device = c2.id_device and c2.id < c.id  
			group by c.id, c.ds
) t
where t.dip_sec > 600



Вообщем я вот так сделал может кому пригоиться.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помогите написать запрос. / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]