一。条件表达

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. js通过查看屏幕大小,更改其他css属性

    首先,我们要知道如何得到屏幕的相关数据. <html><head><title>获取当前对象大小以及屏幕分辨率等</title><body> ...

  2. Chromium(Chrome) frame structure detail

    1. Chromium VS Chrome Chromium is an open-source Web browser project started by Google, to provide t ...

  3. CSS Core Technology

    1. Selector Different types of selectors: Selectors can be divided into the following categories: Si ...

  4. Bacnet协议IP采集开发 总结

    一.开发准备     a.模拟器  VTS和BACnetDeviceSimulator b.主站  BACnetScan c.参考文档 http://wenku.baidu.com/view/3052 ...

  5. 开源在线分析诊断工具Arthas(阿尔萨斯)--总结

    阿里重磅开源在线分析诊断工具Arthas(阿尔萨斯) arthas用法 启动demo java -jar arthas-demo.jar 启动 java -jar arthas-boot.jar at ...

  6. java时间日期类(Date、DateFormat、Calendar)学习

    1.Date类 常用方法:long getTime(),用于返回当前时刻的毫秒值 Date d = new Date(2000); System.out.println(d.getTime());// ...

  7. windows10下 MySQL5.7.18版本安装过程及遇到的问题

    windows10下 MySQL5.7.18版本安装过程及遇到的问题           mysql-5.7.18-winx64 安装           1.解压 此次将MySQL装在H盘,依个人喜 ...

  8. ubuntu go环境安装搭建

    一.安装必备环境 sudo apt-get install git golang-go vim sublime-text-installer 如果出现安装错误,进行修复安装: sudo apt-get ...

  9. Android 开发 ConstraintLayout详解

    implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3' app:layout_constraintHorizo ...

  10. 实战ELK(9) Elasticsearch地理位置

    地理坐标点(geo-point) 是指地球表面可以用经纬度描述的一个点.地理坐标点可以用来计算两个坐标位置间的距离,或者判断一个点是否在一个区域中.地理坐标点不能被动态映射(dynamic mappi ...