前面介绍了一种最简单的一种count的用法,但这种用法一般情况下是很少会被直接这样使用。这个count的灵活之处就在于“无孔不入”。什么意思呢?下面我来给举个例子。
一般情况下我们在查询个数的时候都习惯于count(列名),于是就有人想到我能不能用count()来查询个数呢?
答案当然是可以的。
依然就拿火影来举例子。上一次我们查了与鸣人年龄相同的共有多少人,这一次我们在用不同的方法来查一下。首先,我们还是要知道鸣人的年龄是多少,这一句话相信大家都会写。那么接下来才是关键,怎样用count()来表示我们要查的数量呢。
我们要使用这种用法就必须再写一句sql:select id from 上一个表的表名 where age = '12';
select count() from 上一个表的表名;
这样就可以用count()来查询了。
这尼玛也太麻烦了吧,我还要在写一句sql,像之前那样直接count(列名)不就好了吗,干嘛还这样麻烦!!
没错,的确是麻烦。但是在正常的学习工作中真正用到的是另外一种用法。
举个例子:
select name,age,sex,birthday,death_day,count() num
from 表名 where age = ‘12’ group by name,age,sex,birthday,death_day;
这种用法才是正常工作中经常用到的一种。那么这是什么意思呢?
这是一种典型的group by与count()结合的用法。这种用法我们一开始并不好理解,但是如果不看count()这个的话我们都知道这是一种分组的写法,那么分完组之后就表示每一种情况都会有,但是却不重复。我们再来看count()这个。既然已经分完组又不重复的话,count()是什么意思呢?
我们简单的来做一个分析。
分完组后,每一种情况不重复:鸣人的年龄是12岁,那么与他年龄相同的孩子们的资料都是什么,group by后面的字段与前面查询的字段要保持完全一致才能够分为一组。
而count()就表示根据上面的情况分完组后,一共有多少组。
===========第二部分完===========
共同学习,写下你的评论
评论加载中...
作者其他优质文章