Hive函数之count
2017-12-11 本文已影响0人
编程回忆录
准备数据:
create table t1( a int);
insert into t1 (a) values (1);
insert into t1 (a) values (2);
insert into t1 (a) values (3);
insert into t1 (a) values (NULL);
1.count(*)与count(1)
这两种写法计算结果相同,都是计算总行数包括字段值为NULL的行
select count(*) from t1;
select count(1) from t1;
这两条sql都返回4
2.count(expr)
count可以自定义表达式完成一些高级统计功能,如下:
select count(a) from t1;
image.png
count(a)将返回a字段不为NULL的行数,所以为3。
select count(a>1) from t1;
image.png
这条sql返回3。
最后看下count distinct用法
select count(distinct a) from t1;
image.png
count(distinct a)去重统计也会排除字段为NULL的值。
count distinct还可以写更复杂的表达式:
select count(distinct case when a>1 then a else NULL end) from t1
image.png