偶尔看到sum(1)
 悄悄的问一下,干什么用的啊?举个例子了哦?

解决方案 »

  1.   

    求和
    eg.
    a. select sum(1) from dual; 
       是结果为 1
    b.select sum(1) from test;
      

  2.   

    刚刚不小心提交了继续
     b. select sum(1) from test;
        如果表test中有十条记录,则结果为10
        如果表test中有两条记录, 则结果为2
       意思也就是说,查询了多少条数据就加几次1,如果是针对表中的字段的,就是对该字段对应的值进行求和
      

  3.   

    sum(n);
    就相当于
    total = 0;
    for(i=0;i<列数;i++)
    {
       total = total + n;
    }
      

  4.   

    sum(n) 相当于 列数 * n
      

  5.   

    补充下:
    以这个列子来讲下吧?
    select ccc,sum(1)
    from ttt
    where ccc like 'sss%'
    group by ccc;
    到底是对第一列求和,还是统计记录数?(环境以Oracle为准)
      

  6.   

    比如aaa表:
    ID,NAME,SHU
    1,a,3
    2,a,4
    3,b,5
    4,b,7
    5,a,
    6,a,20
    sum 与count 的区别:
    select name, count(shu), sum(shu) 
                from aaa 
            group by name
     
           结果为:a      3     27
                  b       2     12
           可见:oracle 数据库中对空值的事不同的,count 函数认为没有此项,而sum函数不计算。
           结论: 求和用累加 sum ,求行的个数用累计 count