Tag Archives: mysql

mysql中的count以及sum函数

mysql的函数还是十分强大的,也许不能讨论的得很清楚,权当作自己笔记吧。

sum是就列的数字和。

eg:select sum(obj) from table

这样返回的就是table表中obj的和。但是我觉得一般的情况下,sum都应该和group by一起配合使用。group by就是分组了。

比如:select sum(obj) from table group by obj2

在进行sum计算时,值为null的字段是被忽略的。也就是说1 + null = 1。

而count则是计算指定列的和,比如如果有两条符合要求的数据,那么返回的就是2

比如:select count(*) from table where ooxx

也是灰常好用的。

count还有个用法就是discount了。

比如:select count(discount `id`) from table where ooxx

这样的话,返回的结果集里面,所有的id都是不同的,也就是说,discount会过滤掉id值相同的字段。

更加好的写法就是 select count(discount `id`) as id_t from table where ooxx

这样的话,count所得到的数据就会赋值给id_t,在返回的数据机构中,可以id_t就是count结果键值了。当然鸟,没有discount也是可以用as的。

count或者count(discount `ooxx`)返回的只是数字集合。

discount关键字的作用还是很好的,可以这样写 select discount id from table。这样的话,返回的就是不同的id了。

discontent关键字,在处理两个以上的对象时候,比如:select discount id, class from table 。

那么只有当id和class相同的时候才会过滤,而其中只有一条相同的时候是不过滤的。

在网上查了一下,发现count函数在没有where的情况下,效率是很高的,而在有where的情况下,则是有影响效率的,但是具体有多影响,还不知道,但是既然值得说出来,肯定还是有一些不小的影响的。

好鸟,就这么多鸟。