我在主表中有目的端口dstport字段,还有字节数doctets字段,我现在想统计每种协议(按目的端口号来判断是哪种协议)的流量总和的排名,SQL语句应该怎么写? 难的地方是每种协议对应的目的端口号不止一个,比如端口号是6681到6690都是BT的。我想另建张协议端口号表,字段就是协议名如FTP,另一个字段就是端口号比如21  ,然后两张表联合查询。查询结果应该是
----------------------------------
协议      总流量    
BT       100000
FTP       50000
HTTP      10000

解决方案 »

  1.   

    好,主表结构为。。
    -----------------------------------
    srcaddr    dstaddr   doctets dstport
    192.9.2.2  1.1.1.1   10000   21
    192.9.2.3  2.2.2.2   5000    20
    19.2.2.1   3.3.3.3   30000   6681
    12.2.2.2   3.3.3.3   1000    6682
    19.2.2.1   3.3.3.3   2000    6683
    ......协议表结构是
    ---------------------------------
    protocol          dstport
    BT                6681
    BT                6682
    BT                6683
    BT                6684
    FTP               21
    FTP               20
    HTTP              80
    ....
      

  2.   

    select protocol as 协议, sum(doctets) as 总流量
    from 主表 a, 协议表 b 
    where a.dstport = b.dstport
    group by b.protocol