【发布时间】:2015-06-13 15:24:03
【问题描述】:
我有一张这样的表(C,Sqlite)。我想计算每个 IP 地址联系的 unique 端口的数量。
id | ip_src | ip_dst | port
-----------------------------------
1 | 192.168.45.3 | ... | 442
2 | 132.43.13.4 | ... | 42
3 | 111.5.34.3 | ... | 80
4 | 54.2.2.1 | ... | 8322
5 | 54.2.2.1 | ... | 8322
6 | 192.168.45.3 | ... | 80
7 | 192.168.45.3 | ... | 23
查询的结果理想情况下应该是这样的:
192.168.45.3 = 3
132.43.13.4 = 1
111.5.34.3 = 1
54.2.2.1 = 1
查询会是什么样子?
我试过了:
SELECT src_ip, COUNT(DISTINCT port) FROM synpackets;
但它没有给出正确的结果,它似乎只计算第一个 IP 地址。
【问题讨论】:
-
SO 的重点不是为您编写代码 - 重点是解决您编写的代码中的问题。因此,尝试一些方法,如果它不起作用,您可以寻求帮助以解决您提交的问题。
-
这不是编码服务。发布到目前为止您尝试过的代码。
-
你得到了什么结果?您可能需要在查询末尾添加一个分组依据:GROUP BY src_ip。
-
它只给我一个 IP 地址的计数,而且它似乎同时计算了源 IP 字段和目标 IP 字段
-
如果你把 group by 子句放在上面会发生什么?