Sqlite-根据列计算唯一值
Sqlite - Count Unique Values based on Column
我有一个这样的表(C,Sqlite)。我想统计每个IP地址联系的唯一端口的数量。
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地址。
首先获得唯一端口很重要。因此,您必须嵌套两个select语句,如下所示:
SELECT T.ip_src AS ip_src,
Count(T.ports) AS numberPorts
FROM (SELECT DISTINCT ip_src, ports FROM <TABLE>) AS T
GROUP BY T.ip_src;
在内部select语句中,结果都是唯一的ip_src和端口对。使用这个记录集,我们可以对端口进行计数。注意GROUP BY
。否则,我们将无法获得唯一的端口计数。
这样的东西应该能在中工作
根据src_ip,端口从系统包组中选择src_ip、COUNT(*);
相关文章:
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 递归函数计算序列中的平方和(并输出过程)
- (C++)分析树以计算返回错误值的简单算术表达式
- 我的字符计数代码计算错误.为什么
- 何时在引用或唯一指针上使用移动语义
- 在计算中使用二的幂有多有利可图
- 计算排序向量的向量中唯一值的计数
- C :如何计算数组中唯一客户端的数量并输出其支出
- 计算 UUID 是唯一的概率
- 以 C++ 为单位计算字符串中的唯一单词
- 使用标准库对矢量的矢量进行排序,并计算唯一出现的频率
- 计算数组中唯一字符的函数
- 如何计算出现在字符串和输出行中的唯一单词?C
- 计算唯一单词的数量(大小写对此计数无关紧要)
- Sqlite-根据列计算唯一值
- 计算数组中唯一字符串的数量
- 计算唯一单词的数量和每个单词的出现次数
- 计算包含某些项的列表集合的唯一排列的算法
- 异常vs断言的科学计算家伙(我是我的代码的唯一用户)
- 计算文件中唯一单词的最有效结构[c++]