一。条件表达

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 的条件语句和聚合函数的更多相关文章

  1. 大数据入门到精通11-spark dataframe 基础操作

    // dataframe is the topic 一.获得基础数据.先通过rdd的方式获得数据 val ny= sc.textFile("data/new_york/")val ...

  2. 大数据入门到精通19--mysql 数据导入到hive数据中

    一.正常按照数据库和表导入 \\前面介绍了通过底层文件得形式导入到hive的表中,或者直接导入到hdfs中,\\现在介绍通过hive的database和table命令来从上层操作.sqoop impo ...

  3. 大数据入门到精通18--sqoop 导入关系库到hdfs中和hive表中

    一,选择数据库,这里使用标准mysql sakila数据库 mysql -u root -D sakila -p 二.首先尝试把表中的数据导入到hdfs文件中,这样后续就可以使用spark来dataf ...

  4. 大数据入门到精通12--spark dataframe 注册成hive 的临时表

    一.获得最初的数据并形成dataframe val ny= sc.textFile("data/new_york/")val header=ny.firstval filterNY ...

  5. 大数据入门到精通13--为后续和MySQL数据库准备

    We will be using the sakila database extensively inside the rest of the course and it would be great ...

  6. 大数据入门到精通2--spark rdd 获得数据的三种方法

    通过hdfs或者spark用户登录操作系统,执行spark-shell spark-shell 也可以带参数,这样就覆盖了默认得参数 spark-shell --master yarn --num-e ...

  7. 大数据入门到精通15--hive 对 date类型的处理

    一.基础日期处理 //date 日期处理select current_date;select current_timestamp;//to_date(time) ;to_date(string)sel ...

  8. 大数据入门到精通14--hive 对 字符串的操作

    一.基本操作 concat(string,string,string)concat_ws(string,string,string)select customer_id,concat_ws(" ...

  9. 大数据入门到精通10--spark rdd groupbykey的使用

    //groupbykey 一.准备数据val flights=sc.textFile("data/Flights/flights.csv")val sampleFlights=sc ...

随机推荐

  1. HttpClient 上传图片

    Image image = Image.FromFile(@"F:\image2\DSC02028.JPG"); var data = ImageToByteArray(image ...

  2. excel表格公式无效、不生效的解决方案及常见问题、常用函数

    1.表格公式无效.不生效 使用公式时碰到了一个问题,那就是公式明明已经编辑好了,但是在单元格里不生效,直接把公式显示出来了,网上资料说有4种原因,但是我4种都不是,是第5种原因,如下图: 这种情况是由 ...

  3. pip改源

    临时 python -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple django==1.10 # ==后边指定版本号,也可以不指定 ...

  4. [蓝桥杯]PREV-15.历届试题_格子刷油漆

    题目描述: 代码如下: #include <stdio.h> #include <stdlib.h> #include <string.h> #define MOD ...

  5. Intel_AV-ICE06加速卡+QAT_Engine测试

    Intel AV-ICE06加速卡测试报告 Intel RSA加速卡结合Intel其QAT_Engine测试性能的提升,其支持的异步模式对性能的提升很大. 注意QAT_Engine只支持openssl ...

  6. sql server 合并字段

    合并字段用+号连接就可以了,不过要判断是不是有的合并项为NULL.如果其中一项为NULL,则整个合并字段为NULL. (IsNull(a.supplier, '')  + IsNull(a.po, ' ...

  7. eclipse--常见问题

    学习java的都知道这个编辑器,但这个编辑器的有很多功能很多人不知道怎么用,我系统的整理一下我学习过程中遇到的过的问题 1.eclipse如何导入external jar包?        参考:ht ...

  8. 学习MeteoInfo二次开发教程(十二)

    1.添加新的Form窗体: 在解决方案资源管理器中,右键MeteoInfoDemo,“添加”,“Windows 窗体” 2.新窗体中添加好layersLegend1和Layout之后,要把layers ...

  9. Specified key was too long; max key length is 767 bytes解决方案

    问题描述: 1.  使用spark sql处理数据逻辑,逻辑处理后使用 df.write.mode(saveMode).jdbc(url, tableName, connectionPropertie ...

  10. H5-meta标签使用大全

    meta标签有下面的作用:搜索引擎优化(提高搜索性能),控制页面功能化. meta标签的组成:meta标签共有两个属性,它们分别是http-equiv属性和name属性. 1.name属性 name属 ...