大数据入门到精通16--hive 的条件语句和聚合函数
一。条件表达
case when ... then when .... then ... when ... then ...end
select film_id,rpad(title,20," "),case when rating in ("G","PG","PG-13") then "YOUNG" WHEN RATING=="NC-17" THEN "17 AND UP" WHEN RATING="R" THEN "Mature" else "Unrated" end from film;
isnull() 函数
nvl(field ,field/date)
函数如果是空的话用后面的数据或者另外一个字段填空
二聚合函数
//聚合函数和join操作
select concat_ws(" ",a.first_name,a.last_name) abc ,count(*) counts
from actor a join film_actor fa on fa.actor_id=a.actor_id
join inventory i on i.film_id = fa.film_id
join rental r on r.inventory_id = i.inventory_id
group by concat_ws(" ",a.first_name,a.last_name)
order by counts
limit 10;
计算每个电影的类别出租的费用之和。
select rpad(c.name,15," "),sum(p.amount) sums from category c
join film_category fc on fc.category_id=c.category_id
join inventory i on i.film_id = fc.film_id
join rental r on r.inventory_id=i.inventory_id
join payment p on p.rental_id=r.rental_id
group by c.name
order by sums desc;
//支持从select语句形成的子表做select和聚合
select avg(counts) from (select inventory_id,count(inventory_id) as counts from rental group by inventory_id) s;
select concat_ws(" ",a.first_name,a.last_name) name ,sum(p.amount)
earning ,avg(p.amount) avgearning from actor a join film_actor fa on fa.actor_id= a.actor_id
join inventory i on i.film_id = fa.film_id
join rental r on r.inventory_id= i.inventory_id
join payment p on p.rental_id=r.rental_id
group by i.film_id, concat_ws(" ",a.first_name,a.last_name)
order by name,avgearning ;
//group by 和 order by 都可以是多个字段
大数据入门到精通16--hive 的条件语句和聚合函数的更多相关文章
- 大数据入门到精通11-spark dataframe 基础操作
// dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...
- 大数据入门到精通19--mysql 数据导入到hive数据中
一.正常按照数据库和表导入 \\前面介绍了通过底层文件得形式导入到hive的表中,或者直接导入到hdfs中,\\现在介绍通过hive的database和table命令来从上层操作.sqoop impo ...
- 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中
一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...
- 大数据入门到精通12--spark dataframe 注册成hive 的临时表
一.获得最初的数据并形成dataframe val ny= sc.textFile("data/new_york/")val header=ny.firstval filterNY ...
- 大数据入门到精通13--为后续和MySQL数据库准备
We will be using the sakila database extensively inside the rest of the course and it would be great ...
- 大数据入门到精通2--spark rdd 获得数据的三种方法
通过hdfs或者spark用户登录操作系统,执行spark-shell spark-shell 也可以带参数,这样就覆盖了默认得参数 spark-shell --master yarn --num-e ...
- 大数据入门到精通15--hive 对 date类型的处理
一.基础日期处理 //date 日期处理select current_date;select current_timestamp;//to_date(time) ;to_date(string)sel ...
- 大数据入门到精通14--hive 对 字符串的操作
一.基本操作 concat(string,string,string)concat_ws(string,string,string)select customer_id,concat_ws(" ...
- 大数据入门到精通10--spark rdd groupbykey的使用
//groupbykey 一.准备数据val flights=sc.textFile("data/Flights/flights.csv")val sampleFlights=sc ...
随机推荐
- MVC Action 返回类型
https://www.cnblogs.com/xielong/p/5940535.html https://blog.csdn.net/WuLex/article/details/79008515 ...
- C# 6.0:nameof操作符
C# 6.0 引入了一个名为“nameof”的新的操作符,它的作用是接收元素而后返回元素名字.这个操作符能将class和class的所用成员,比如方法.变量以及属性作为参数而后返回一个它们的名字.这避 ...
- 干掉win10自带的不给力的应用(转自https://jingyan.baidu.com/article/08b6a591b7398514a8092238.html)
1.右键以管理员身份运行Windows power shell,(怎么找到Windows power shell?按下win键,直接搜索就有了) 2.在应用中输入命令 Get-AppXPackage ...
- Odoo-10开发环境配置与测试
Odoo是使用Python写的开源ERP软件,这几年比较火.内部有实施能力的,这个软件还是很不错的.总体来说,国外的这类软件,更多是在做平台(比如微软的AX.SharePoint.SAP等)平台本身具 ...
- 游戏AI
玩游戏太累了,我或许可以写一个机器人帮我玩游戏发QQ发空间啥的
- Jq写个联级菜单
这个效果很好看,Jq很容易实现: $(document).ready(function(){ $('.menu li').hover(function(){ $(this).children('ul' ...
- POJ3094 Quicksum
POJ3094 Quicksum Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18517 Accepted: 1271 ...
- Python 编码的一些问题
>>> ord('中') 20013 >>> chr(65) 'A' >>> chr(20013) '中' - Python文件默认是UTF-8编 ...
- C# HtmlAgilityPack 爬虫框架
这两天公司不是很忙,在某个网站看见别人爬虫出来的数据感觉很有兴趣就玩了一把,网上找了一个 HtmlAgilityPack 爬虫框架,用了一下感觉很不错 首先从Nuget上面更新Package:Html ...
- C#实现多个PDF合并及去除文字水印功能
实现pdf合并就是使用Spire.Pdf.dll类库的方法,但是注意需要同时引用Spire.Pdf.dll和Spire.License.dll两个类库,且两个类库的版本要一致 String[] fil ...