我有一個表與source_ip和destination_ip和用法。現在我想找到ip pair的最高使用率。 我的表是這樣的:如何在PostgreSQL中查找IP對的最高使用情況?
source_ip | destination_ip | usage
192.168.1.1 | 192.168.1.2 | 20
192.168.1.2 | 192.168.1.1 | 30
192.168.1.3 | 192.168.1.2 | 20
192.168.1.2 | 192.168.1.3 | 20
例如,這兩條記錄是一對。
source_ip | destination_ip | usage
192.168.1.1 | 192.168.1.2 | 20
192.168.1.2 | 192.168.1.1 | 30
最後我想這
192.168.1.1 and 192.168.1.2 used 50 b
192.168.1.2 and 192.168.1.3 used 40 b
這是我的查詢,
with T1 as(
SELECT source_ip, distination_ip, sum(usage)
FROM receiver
GROUP BY source_ip, distination_ip
)
SELECT DISTINCT * FROM T1 JOIN T1 T2
ON T1.source_ip = T2.distination_ip AND T1.distination_ip = T2.source_ip
和我的查詢返回此:
source_ip | destination_ip | usage | source_ip | destination_ip | usage
192.168.1.1 | 192.168.1.2 | 20 | 192.168.1.2 | 192.168.1.1 | 30
192.168.1.2 | 192.168.1.1 | 30 | 192.168.1.1 | 192.168.1.2 | 20
192.168.1.3 | 192.168.1.2 | 20 | 192.168.1.2 | 192.168.1.3 | 20
192.168.1.2 | 192.168.1.3 | 20 | 192.168.1.3 | 192.168.1.2 | 20
謝謝。它現在看起來很簡單,在你的答案之後;) –