表名为flow.表结构为
dstip   doctets dstport 
1.1.1.1  56      21
2.2.2.2  12      80
1.1.1.1  78      80
...      ...     ...
 
我想先按dstip对doctets求和,然后再查询显示出前10名的排名应该怎么写SQL语句?
我写的是
select top 10 sum(doctets) from flow group by dstip order by sum(doctets) desc;
可是却不正确,提示错误。
请问应该怎么写啊?
谢谢!

解决方案 »

  1.   

    是什么数据库吗?
    MSSQL Server是在SELECT语句中加入“first”关键字;
    DB2是在SELECT语句中加入“TOP”关键字;
    Oracle忘记了,是有一关键字可处理的。
      

  2.   

    oracle: WHERE ROWNUM < 11
      

  3.   

    select 
      top 10 
        sum(doctets) AS COUNTS,
        dstip
    from 
      flow 
    group by 
      dstip 
    order by 
      COUNTS desc;
      

  4.   

    你的sum()后应该有个as xxx  然后orderby xxx
      

  5.   

    我的是mysql 4.1好象还是不对啊。。晕。。难道mysql的标准sql语句支持的不好?