1.group by概述:
简单的来说: 将数据库的数据用’by’后面接的规则进行分组,即将一个大数据库分成一个个相同类型数据在一起的小区域。
2.group by的语法:
select column_name,function(column_name) //此处的function()函数是指SQL中的一些聚合函数,例如: MAX(),MIN(),SUM(),AVG(),COUNT()等
from table_name where column_name operator value //where条件语句
group by column_name;//以某一列分组
语句整个的意思就是从table_name 这个表中,先筛选出满足where后条件的所有数据,然后又对这些数据按照column_name字段分组,最后将column_name展示在结果集中。
例如:
insert overwrite table track_info_province_stat partition(day='2013-07-21')
select province,count(*) as cnt from track_info where day='2013-07-21' group by province;
从track_info 表中选出符合day='2013-07-21’条件的数据,并按照province进行分组,
得出以province为分组的每个分组中里面数据的数量(就是统计每个province的数量),有两个字段分别为province,cnt 。
然后将结果写入分区表track_info_province_stat
insert overwrite:覆盖写入
count(*) as cnt:统计的每个privince的数量作为列起的别名cnt