继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

关于hive中的count的用法(二)

妞给爷乐一个
关注TA
已关注
手记 8
粉丝 4
获赞 151

前面介绍了一种最简单的一种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(
)就表示根据上面的情况分完组后,一共有多少组。
===========第二部分完===========

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP