Для каждого 20-минутного интервала я пытаюсь найти / ранжировать уникальные IP-адреса с соответствующими номерами портов, которые генерируют наибольший объем трафика, в Мбит / с (мегабит в секунду), в порядке убывания.
Каждый IP-адрес может или может быть записан более одного раза в каждый 20-минутный период.Каждый раз, когда IP-адрес записывается с интервалом в 20 минут, он может иметь или не иметь один и тот же номер порта в списке.
Например, в приведенной ниже таблице IP-адрес 192.168.10.1 показывает четыревремя в течение периода, указанного как 12:20, с номерами портов 443, 80, 80 и 80 соответственно.В другом сценарии ip-адрес 192.168.10.2 отображается дважды в течение периода 12:40 с тем же номером порта 443, указанным дважды, но с другими значениями для столбца mbps (полоса пропускания).
ЕслиIP-адрес отображается более одного раза за определенный период, проверьте его соответствующий порт, и, если один и тот же порт указан более одного раза, выберите / перечислите только тот экземпляр, порт которого генерировал наибольшее количество трафика.Не допускается дублирование ips и портов для каждого 20-минутного периода.
Таблица разбита на части в зависимости от времени ввода данных.Строки за 20-минутный интервал исчисляются миллионами.
Запрос должен быть в стандартном SQL.Данные записываются в байтах, поэтому мне нужно каким-то образом также включить это преобразование в мегабиты в запрос.
исходная таблица:
Row time ip_address port mbps
1 01/01/2019 00:00 192.168.10.1 443 100
2 01/01/2019 00:00 192.168.10.1 443 150
3 01/01/2019 00:00 192.168.10.1 80 120
4 01/01/2019 00:00 192.168.10.1 80 123
5 01/01/2019 00:20 192.168.10.2 80 200
6 01/01/2019 00:20 192.168.10.1 80 100
7 01/01/2019 00:20 192.168.10.2 80 210
8 01/01/2019 00:20 192.168.10.1 80 110
9 01/01/2019 00:40 192.168.10.2 443 200
10 01/01/2019 00:40 192.168.10.3 443 300
11 01/01/2019 00:40 192.168.10.2 443 220
12 01/01/2019 00:40 192.168.10.1 443 300
13 01/01/2019 00:00 192.168.10.3 443 90
14 01/01/2019 00:00 192.168.10.2 80 100
15 01/01/2019 00:00 192.168.10.1 443 500
Передавая выше через запрос, я хотел бычтобы получить следующие результаты:
Row time ip_address port mbps
1 01/01/2019 00:00 192.168.10.1 443 150
2 01/01/2019 00:00 192.168.10.1 80 123
3 01/01/2019 00:20 192.168.10.1 80 110
4 01/01/2019 00:20 192.168.10.2 80 200
5 01/01/2019 00:40 192.168.10.1 443 300
6 01/01/2019 00:40 192.168.10.2 443 220
7 01/01/2019 00:40 192.168.10.3 443 300
8 01/01/2019 00:00 192.168.10.1 443 500
9 01/01/2019 00:00 192.168.10.2 80 100
10 01/01/2019 00:00 192.168.10.3 443 90
Я попытался использовать несколько запросов для достижения вышеупомянутого безуспешно.Любая помощь / указание в правильном направлении, будет принята с благодарностью.Спасибо!