Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.LINUX
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.LINUX с датами от 24 Jan 02 06:01:34 до 23 Aug 24 12:51:58, всего сообщений: 8555
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 3821 из 8555 ========================================= RU.LINUX =
От   : Maxim Romanenkov                 2:5020/570.35      02 Feb 17 09:26:40
Кому : Andrey Ostanovsky                                   02 Feb 17 09:26:40
Тема : помогите с SQL-запросом
FGHI : area://RU.LINUX?msgid=2:5020/570.35+5892d121
На   : area://RU.LINUX?msgid=2:5030/1957+58923ea1
= Кодировка сообщения определена как: CP866 ==================================
==============================================================================
Привет, Andrey!

01 фев 17 22:57, Andrey Ostanovsky -> Maxim Romanenkov:

AO> Так это надо вложенные запросы делать. :) Первым (внутренним) запросом
AO> - получаем выборку адресов по 23 порту, а вторым - проверяем, есть ли
AO> еще порты (т.е. "порт не равен 23")...

По-моему это лишь еще крепче все усложнит. Давай я приведу и объясню еще раз запрос который надо переделать:

select
 test.ad, test.freq, test.numz
from  (  select
          list.ad,count(list.pt) as freq,array_agg(list.pt) as numz
         from   (   select
                     ad,pt
                    from swedro
                    group by ad,pt
                 ) as list
         group by ad
      ) as test
where test.freq=1 AND test.numz[1]=23
order by ad;

Это вложенный дважды запрос. Первым делом я выбираю адреса и порты, а чтобы избавиться от дублированных записей - группирую их:

select ad,pt
from swedro
group by ad,pt

получается список ( as list ), в котором я считаю количество уникальных атакованных портов ( count(list.pt) ) и вывожу вектор номеров портов ( array_agg(list.pt) ). Полученную выборку я снова фильтрую, теперь по условию "число атакованных портов равно единице" и "первый элемент вектора равен 23-м" ( test.freq=1 AND test.numz[1]=23 ). Это все работает правильно, вопрос в следующем: как избавиться от использования array_agg()?

С наилучшими пожеланиями, Maxim.

--- -Natural gas is hemispheric.
* Origin: We're concerned about AIDS in our White House... (2:5020/570.35)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.176825 секунды