|
|
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
Всем привет. Очень нужна помощь. Есть таблица (MySQL 5.6) в которую каждые 3 мин добавляется запись (IP_ADDRESS, Time, Result) IP_ADDRESS Time Result 10.0.0.1 11-00-00 On 10.0.0.1 11-03-00 Off 10.0.0.1 11-06-00 Off 10.0.0.1 11-09-00 Off 10.0.0.1 11-12-00 On 10.0.0.1 11-15-00 Off 10.0.0.1 11-18-00 On 10.0.0.1 11-21-00 On 10.0.0.1 11-24-00 Off 10.0.0.1 11-27-00 On 10.0.0.1 11-30-00 On 10.0.0.1 11-33-00 On Как написать запрос в который будут попадать только те строки у которых Result = Off три и более раз подряд. То есть из примера должны вывестись только 10.0.0.1 11-03-00 Off 10.0.0.1 11-06-00 Off 10.0.0.1 11-09-00 Off Заранее спасибо за помощь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 15:37:05 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
Использовать три копии таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.03.2014, 18:16:19 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
Причем сдвинутых на 1 и 2 строки. Может оказаться разумнее при добавлении обсчитывать предыдущие значения (достаточно выбрать с тем же айпи следующие две строки) и писать сигнал в отдельную таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.03.2014, 23:06:31 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
что обозначает слово "подряд" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 07:39:57 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
вадячто обозначает слово "подряд"Очевидно, что при сортировке по времени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 09:25:43 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
Akina, спасибо за ответ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 09:27:59 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
а я бы на переменных предложил сделать. по идее, так экономичнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 09:38:00 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
miksoftа я бы на переменных предложил сделать. по идее, так экономичнее. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.03.2014, 10:19:30 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
Это ж старая задача на инвариант группы... (Номер по порядку)-(Номер по порядку внутри группы) = const для всех элементов группы Далее группируем по const все группы с числом элементов не менее заданного, определяем границы группы (min, max) И наконец отбираем все записи в рамках определенных границ В MS SQL решается через ROW_NUMBER(), в MySQL (за отсутствием этой функции) - несколько сложнее: http://sqlfiddle.com/#!2/65d0d/1 (индексами в примере не озадачивался) PS. JOIN на 3 таблицы был бы хорош, если б надо было найти все последовательности ровно из 3 строк ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 08:41:19 |
|
||
|
Выбор записей с одинаковым значением подряд
|
|||
|---|---|---|---|
|
#18+
забыл уточнить, что не просто const, а уникальный const, то есть инвариант группы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.03.2014, 08:48:14 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=183&tid=1835062]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
25ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 192ms |
| total: | 288ms |

| 0 / 0 |
