SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 09.04.2011 21:24:59

ArmanZak
Участник
Зарегистрирован: 19.03.2011
Сообщений: 17

Помогите с запросом не могу разобратся

У меня есть таблица такова вида

unix_secs, srcaddr,dstaddr,srcport,dstport

нужен запрос который группирует по srcaddr,dstaddr и dstport , где в грууппах unix_secs  различащтся максимальна на 3

Неактивен

 

#2 09.04.2011 22:25:00

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом не могу разобратся

Предположим у вас есть 10 записей с одинаковым srcaddr,dstaddr, dstport и unix_secs, принимающим значения от 1 до 10.
Какие именно записи должны войти в итоговый результат, ведь можно по разному выбрать записи, у которых unix_secs будет отличаться не более чем на 3.

Неактивен

 

#3 09.04.2011 22:41:22

ArmanZak
Участник
Зарегистрирован: 19.03.2011
Сообщений: 17

Re: Помогите с запросом не могу разобратся

vasya написал:

Предположим у вас есть 10 записей с одинаковым srcaddr,dstaddr, dstport и unix_secs, принимающим значения от 1 до 10.
Какие именно записи должны войти в итоговый результат, ведь можно по разному выбрать записи, у которых unix_secs будет отличаться не более чем на 3.

Все записи у которых unix_secs отличается не более на 3:
Например:
unix_secs|srcaddr   |dstaddr  |srcport |dstaddr
------------------------------------------
234        |srcaddr1 |dstaddr1 | 1        | 3
-------------------------------------------
235        |srcaddr1 |dstaddr1 | 2        | 3
-------------------------------------------
240        |srcaddr1 |dstaddr1 | 2        | 3
-------------------------------------------
241        |srcaddr1 |dstaddr1 | 1        | 5
-------------------------------------------
244        |srcaddr1 |dstaddr2 | 2        | 3
-------------------------------------------
245        |srcaddr1 |dstaddr2 | 2        | 3
-------------------------------------------
247        |srcaddr2 |dstaddr1 | 5        | 7
-------------------------------------------
249        |srcaddr3 |dstaddr3 | 445     | 23
-------------------------------------------
254        |srcaddr2 |dstaddr1 | 80       | 4
-------------------------------------------

должен вывести
unix_secs|srcaddr   |dstaddr  | dstaddr
------------------------------------------
234        |srcaddr1 |dstaddr1 | 3
-------------------------------------------
235        |srcaddr1 |dstaddr1 | 3
-------------------------------------------

притом unix_secs идет на возрастание

Неактивен

 

#4 09.04.2011 22:58:14

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Помогите с запросом не могу разобратся

А почему не
240        |srcaddr1 |dstaddr1 | 2        | 3
в этой группе, состоящей из одной записи unix_secs отличается не более чем на 3 smile

И каков ответ будет в случае 10 строк от 1 до 10?

Неактивен

 

#5 11.04.2011 09:09:31

ArmanZak
Участник
Зарегистрирован: 19.03.2011
Сообщений: 17

Re: Помогите с запросом не могу разобратся

В каждой группе для любой строки есть хоть одна (необязательно все) другая строка у которого unix_secs отличается не более чем +-3:
Строки дложны сгруппироватся по srcaddr,dstaddr,dstport и выше упомянутое условие,


vasya написал:

А почему не
240        |srcaddr1 |dstaddr1 | 2        | 3
в этой группе, состоящей из одной записи unix_secs отличается не более чем на 3 smile

И каков ответ будет в случае 10 строк от 1 до 10?

число елементов группе больше одного.

В случае 10 строк от 1 до 10 ответ
Одна группа где count(*)==10

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson