|
有一个关于查询语句的问题请教大家。
我从网络上采集到的ip包信息以如下方式存入表中:
- #时间 #源地址 #目的地址 #包长
- xxxx 10.0.0.1 10.0.0.2 3
- xxxx 10.0.0.1 10.0.0.2 60
- xxxx 10.0.0.1 10.0.0.3 3
- xxxx 10.0.0.1 10.0.0.3 60
- xxxx 10.0.0.2 10.0.0.1 3
- xxxx 10.0.0.2 10.0.0.1 60
- xxxx 10.0.0.3 10.0.0.1 3
- xxxx 10.0.0.3 10.0.0.1 60
复制代码
我需要打印出某一时间段内两个主机之间交换的数据包的长度
很久没有用数据库了,我只记得一些简单的查询方式,比如下面这个:
- select ip_saddr, ip_daddr, ip_protocol, sum(ip_totlen)
- from ulogd.ulog
- group by ip_saddr, ip_daddr, ip_protocol
- order by ip_saddr, ip_daddr, ip_protocol
复制代码
可以打印出如下的表(先忽略时间):
- #源地址 #目的地址 #总包长
- 10.0.0.1 10.0.0.2 63
- 10.0.0.1 10.0.0.3 63
- 10.0.0.2 10.0.0.1 163
- 10.0.0.3 10.0.0.1 163
复制代码
很明显后面两个结果实际和前面两个结果是对应的,一个是发送的包长,一个是接收的包长。
为了看起来方便,我希望能把这样的四行结果变成两行,即:
- #源地址 #目的地址 #发送总包长 #接收总包长
- 10.0.0.1 10.0.0.2 63 163
- 10.0.0.1 10.0.0.3 63 163
复制代码
如果不是很花时间的话,麻烦大家帮我解决一下。:thank |
|