powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос
6 сообщений из 6, страница 1 из 1
Запрос
    #34466570
skylander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть запрос:
SELECT data, acct.ip_dst, sum(acct.bytes) / 1048576::numeric AS downloaded
FROM acct
WHERE acct.ip_dst > '192.168.5.1'::inet AND acct.ip_dst < '192.168.5.254'::inet

AND acct.ip_src NOT between '192.168.5.1' AND '192.168.5.254'
AND acct.ip_src NOT between '192.168.2.1' AND '192.168.2.254'
AND acct.ip_src NOT between '85.89.96.1' AND '85.89.96.254'
AND acct.ip_src NOT between '212.5.107.49' AND '212.5.107.62'
AND acct.data = CURRENT_DATE - 1
GROUP BY acct.ip_dst, data
ORDER BY acct.ip_dst;


Не могу сообразить как для acct.ip_dst сделать тоже, что и для acct.ip_src сделано, делаю по аналогии и получается совсем не тот результат -- пусто:
SELECT data, acct.ip_dst, sum(acct.bytes) / 1048576::numeric AS downloaded
FROM acct
WHERE acct.ip_dst > '192.168.5.1'::inet AND acct.ip_dst < '192.168.5.254'::inet
AND acct.ip_dst > '192.168.2.1'::inet AND acct.ip_dst < '192.168.2.254'::inet
AND acct.ip_dst > '85.89.96.1'::inet AND acct.ip_dst < '85.89.96.254'::inet
AND acct.ip_src NOT between '192.168.5.1' AND '192.168.5.254'
AND acct.ip_src NOT between '192.168.2.1' AND '192.168.2.254'
AND acct.ip_src NOT between '85.89.96.1' AND '85.89.96.254'
AND acct.ip_src NOT between '212.5.107.49' AND '212.5.107.62'
AND acct.data = CURRENT_DATE - 1
GROUP BY acct.ip_dst, data
ORDER BY acct.ip_dst;
...
Рейтинг: 0 / 0
Запрос
    #34466906
Serik Akhmetov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используйте кнопку SRC, будет намного нагляднее

skylanderЕсть запрос:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
SELECT data, acct.ip_dst, sum(acct.bytes) /  1048576 ::numeric AS downloaded
FROM acct
WHERE acct.ip_dst > '192.168.5.1'::inet AND acct.ip_dst < '192.168.5.254'::inet

AND acct.ip_src  NOT between  '192.168.5.1'     AND  '192.168.5.254'
AND acct.ip_src  NOT between  '192.168.2.1'     AND  '192.168.2.254'
AND acct.ip_src  NOT between  '85.89.96.1'      AND  '85.89.96.254'
AND acct.ip_src  NOT between  '212.5.107.49'    AND  '212.5.107.62'
AND acct.data = CURRENT_DATE -  1 
GROUP BY acct.ip_dst, data
ORDER BY acct.ip_dst;

Не могу сообразить как для acct.ip_dst сделать тоже, что и для acct.ip_src сделано, делаю по аналогии и получается совсем не тот результат -- пусто:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT data, acct.ip_dst, sum(acct.bytes) /  1048576 ::numeric AS downloaded
FROM acct
WHERE acct.ip_dst > '192.168.5.1'::inet AND acct.ip_dst < '192.168.5.254'::inet
AND acct.ip_dst > '192.168.2.1'::inet AND acct.ip_dst < '192.168.2.254'::inet
AND acct.ip_dst > '85.89.96.1'::inet AND acct.ip_dst < '85.89.96.254'::inet
AND acct.ip_src  NOT between  '192.168.5.1'     AND  '192.168.5.254'
AND acct.ip_src  NOT between  '192.168.2.1'     AND  '192.168.2.254'
AND acct.ip_src  NOT between  '85.89.96.1'      AND  '85.89.96.254'
AND acct.ip_src  NOT between  '212.5.107.49'    AND  '212.5.107.62'
AND acct.data = CURRENT_DATE -  1 
GROUP BY acct.ip_dst, data
ORDER BY acct.ip_dst;


Объясните вопрос словами, я не понял что вы хотите получить.
...
Рейтинг: 0 / 0
Запрос
    #34466988
skylander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно получить группирующий результат где бы: acct.ip_dst и acct.ip_src соответсвовали некоторым условиям. Математически множество строк получаемое в результате сложения множеств по условиям acct.ip_dst нужно перемножить (объеденить) с множество строк полученным в результате сложения множеств по условиям acct.ip_src -- затем выполнить группировку по acct.ip_dst -- где-то так
...
Рейтинг: 0 / 0
Запрос
    #34467042
4321
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у вас для фильтрации неперекрывающихся диапазонов по ip_dst используется AND???

т.е. вы хотите, чтобы ip_dst _одновременно_ входил в 2 неперекрывающихся диапазона????

(для ip_src AND в логике оправдано тем, что суммируются условия _НЕ_ вхождения)

т.ч. вместо математики (которую вы очевидно не понимаете), расскажите своими словами, что вы хотите отфильтровать.
...
Рейтинг: 0 / 0
Запрос
    #34467086
skylander
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4321у вас для фильтрации неперекрывающихся диапазонов по ip_dst используется AND???

т.е. вы хотите, чтобы ip_dst _одновременно_ входил в 2 неперекрывающихся диапазона????

(для ip_src AND в логике оправдано тем, что суммируются условия _НЕ_ вхождения)

т.ч. вместо математики (которую вы очевидно не понимаете), расскажите своими словами, что вы хотите отфильтровать.

В том-то и дело. что не используется, sql написал приммерно, то что я хочу получить написал словами.
...
Рейтинг: 0 / 0
Запрос
    #34476852
Funny_Falcon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT data, acct.ip_dst, sum(acct.bytes) /  1048576 ::numeric AS downloaded
FROM acct
WHERE (
      acct.ip_dst > '192.168.5.1'::inet AND acct.ip_dst < '192.168.5.254'::inet
   OR acct.ip_dst > '192.168.2.1'::inet AND acct.ip_dst < '192.168.2.254'::inet
   OR acct.ip_dst > '85.89.96.1'::inet AND acct.ip_dst < '85.89.96.254'::inet)
AND acct.ip_src NOT between '192.168.5.1' AND '192.168.5.254'
AND acct.ip_src NOT between '192.168.2.1' AND '192.168.2.254'
AND acct.ip_src NOT between '85.89.96.1' AND '85.89.96.254'
AND acct.ip_src NOT between '212.5.107.49' AND '212.5.107.62'
AND acct.data = CURRENT_DATE -  1 
GROUP BY acct.ip_dst, data
ORDER BY acct.ip_dst;
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]