LINUX.ORG.RU

SQL поиск частых сообщений в логах средствами SQL

 


0

1

Задача примерно следующая: Есть логи посещений сайта. Нужно найти клиентов которые несколько раз подряд заходили на сайт в течении небольшого интервала времени. Тоесть 1 человек открывает сайт 1 раз в сутки. А другой зашел 8 раз в 10 минут. Вот хочется искать тех кто более N раз в определенный интервал заходил на сайт. В голову совсем не приходит как это сделать с помощью SQL. Немного смотрю на оконные функции, но не соображу как это сделать.


Ответ на: комментарий от MKuznetsov

можно пример группировки по интервалам?

dmxrand
() автор топика

в оракле как-то так:

with t  as
( select  1 time_, 'u1' user_ from dual union  all
  select  2 time_, 'u1' user_ from dual union  all
  select  3 time_, 'u1' user_ from dual union  all
  select  4 time_, 'u2' user_ from dual union  all
  select  5 time_, 'u2' user_ from dual union  all
  select  6 time_, 'u1' user_ from dual union  all
  select  7 time_, 'u1' user_ from dual union  all
  select  8 time_, 'u1' user_ from dual union  all
  select  9 time_, 'u2' user_ from dual union  all
  select 10 time_, 'u1' user_ from dual union  all
  select 11 time_, 'u2' user_ from dual union  all
  select 12 time_, 'u1' user_ from dual union  all
  select 13 time_, 'u1' user_ from dual union  all
  select 14 time_, 'u1' user_ from dual union  all
  select 15 time_, 'u2' user_ from dual union  all
  select 16 time_, 'u1' user_ from dual
  
)                               

            select *
              from (
                    select user_,
                           time_ - nvl(lag(time_, 4) over(partition by user_ order by  time_ ), -100500) delta_time
                      from (
                                 select user_,
                                        time_
                                   from t
                               order by user_, time_
                            )
                    )
             where delta_time < 16

anonymous
()

Здесь N = 4

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.