Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
группировка в зависимости от соотношения знач (MatrixMaster) 22/04/2003 - 15:14:54
      Re: группировка в зависимости от соотношения знач (Alec) 22/04/2003 - 15:46:12
      Re: группировка в зависимости от соотношения знач (Alec) 22/04/2003 - 15:56:14
      Re: группировка в зависимости от соотношения знач (MatrixMaster) 22/04/2003 - 16:06:26
      Re: группировка в зависимости от соотношения знач (XODOK) 22/04/2003 - 16:06:48
      Re: группировка в зависимости от соотношения знач (Alec) 22/04/2003 - 17:09:38
      Re: группировка в зависимости от соотношения знач (XODOK) 23/04/2003 - 04:52:18
      Re: группировка в зависимости от соотношения знач (vi.k) 23/04/2003 - 08:24:55
      Re: группировка в зависимости от соотношения знач (Alec) 23/04/2003 - 09:17:44
      Re: группировка в зависимости от соотношения знач (Alec) 23/04/2003 - 09:21:20
      Re: группировка в зависимости от соотношения знач (vi.k) 23/04/2003 - 10:13:13
      Re: группировка в зависимости от соотношения знач (XODOK) 23/04/2003 - 10:21:25
      Re: 2Alec (vi.k) 23/04/2003 - 10:23:01
      Re: 2 vi.k (Alec) 23/04/2003 - 11:22:26
      Re: :) (vi.k) 23/04/2003 - 12:55:54

> Original message text:
> From: MatrixMaster - 22/04/2003 - 15:14:54
> Subject:группировка в зависимости от соотношения знач
> -----------------
> есть поле таблицы, содержимое строк - timestamp (время в секундах - time())
> строки отсортированы в хронологическом порядке.
> разница между значениями соседних строк - разная, но пороговая - 15 минут.
> 'пороговая' - это значит, что следующие строки 'принадлежат' как бы другой группе.
> т.е. нужно посчитать количество таких груп.
>
> поясню, что разница между каждой строкой может быть и одна минута, и таких строк может быть 1000 - НО это все будет одна группа.
> а вот если разница составляет 15 мин. - то это граница между группами.
>
> плс, ткните в доку/ман/фак которая может помоч мне.
> спасибо.
>


From: vi.k - 23/04/2003 - 10:13:13
Subject:группировка в зависимости от соотношения знач
-----------------
Таблица tttest в базе test:
id - int auto_increment
tick - timestamp

900 - 900 сек = 15 мин
date_format - только для наглядности
Извраты в 'group by' - группируем как надо, при этом не забываем обходить оптимизацию MySQL'я

Но повторяю - при всей работоспособности это есть изврат и пользоваться этим не рекомендую.

select id, date_format( tick, '%e.%m.%Y %H:%i:%S') tick
from test.tttest;

id tick
1 23.04.2003 16:33:00
2 23.04.2003 16:34:00
3 23.04.2003 16:34:30
4 23.04.2003 16:35:00
5 23.04.2003 16:50:00
6 23.04.2003 17:03:00
7 23.04.2003 17:12:00
8 23.04.2003 18:00:00
9 23.04.2003 18:14:00

set @prev_tick=0;
set @group_no=0;
select /*@group_no, @prev_tick,*/
count(*) count,
date_format( min(tick), '%e.%m.%Y %H:%i:%S') min_tick,
date_format( max(tick), '%e.%m.%Y %H:%i:%S') max_tick
from test.tttest
group by
if( time_to_sec( tick) - time_to_sec( @prev_tick) >= 900,
@group_no:=@group_no+1 + (@prev_tick:=tick) - tick,
@group_no + (@prev_tick:=tick) - tick)

count min_tick max_tick
4 23.04.2003 16:33:00 23.04.2003 16:35:00
3 23.04.2003 16:50:00 23.04.2003 17:12:00
2 23.04.2003 18:00:00 23.04.2003 18:14:00



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
8023



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |