Hive(10):hive支持常用HQL语句

2024-05-24 11:32
文章标签 支持 常用 hive 语句 hql

本文主要是介绍Hive(10):hive支持常用HQL语句,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1、过滤

(1)where:select,update,delete,insert into 

select * from emp where sal > 3000;

(2)limit  

 select * from emp limit 1;

(3)distinct,count/group by 

    select distinct deptno from emp;select  count(distinct empno) as uv  from emp;select min(sal),deptno from emp group by deptno;

(4)between and    

select * from emp where sal between 2000 and 3000;

(5)is null & is not null(/n,"")

    select ename from emp where comm is null;select ename from emp where comm is not null;

(6)having 
    分组语句之后

    select deptno,avg(sal) avg_sal from emp group by deptno having avg_sal > 2000;select deptno,avg from (select deptno,avg(sal) as avg from emp group by deptno) a where avg > 2000;

    注意:where和having可以在一条语句中执行,where先执行 

2、聚合函数

(1)count  

 select count(1) from emp;

(2)sum
(3)avg   

select avg(sal) avg_sal from emp;

(4)max
(5)min

select deptno,avg(sal),empno from emp group by deptno,empno;
select deptno,avg(sal),max(empno) from emp group by deptno;

3、group by分组(去重)

    select deptno,avg(sal) from emp group by deptno;select count(userid) as uv from log(日志表) group by userid

4、join

分类:

        等值join   inner  
        左join    left
        右join    right
        全join    full
        semi join 半关联
        map join 优化(大表和小表join的优化)

 

A:emp表
emp.empno       emp.ename       emp.job emp.mgr emp.hiredate    emp.sal emp.comm        emp.deptno
7369    SMITH   CLERK   7902    1980-12-17      800.0   NULL    20
7499    ALLEN   SALESMAN        7698    1981-2-20       1600.0  300.0   30
7521    WARD    SALESMAN        7698    1981-2-22       1250.0  500.0   30
7566    JONES   MANAGER 7839    1981-4-2        2975.0  NULL    20
7654    MARTIN  SALESMAN        7698    1981-9-28       1250.0  1400.0  30
7698    BLAKE   MANAGER 7839    1981-5-1        2850.0  NULL    30
7782    CLARK   MANAGER 7839    1981-6-9        2450.0  NULL    10
7788    SCOTT   ANALYST 7566    1987-4-19       3000.0  NULL    20
7839    KING    PRESIDENT       NULL    1981-11-17      5000.0  NULL    10
7844    TURNER  SALESMAN        7698    1981-9-8        1500.0  0.0     30
7876    ADAMS   CLERK   7788    1987-5-23       1100.0  NULL    20
7900    JAMES   CLERK   7698    1981-12-3       950.0   NULL    30
7902    FORD    ANALYST 7566    1981-12-3       3000.0  NULL    20
7934    MILLER  CLERK   7782    1982-1-23       1300.0  NULL    10B:dept表
dept.deptno     dept.dname      dept.loc
10      ACCOUNTING      NEW YORK
20      RESEARCH        DALLAS
30      SALES   CHICAGO
40      OPERATIONS      BOSTON

(1)等值join语句:

select e.empno,e.ename,d.deptno,e.sal from emp e join dept d on e.deptno=d.deptno;
【结果:】
e.empno e.ename d.deptno        e.sal
7369    SMITH   20      800.0
7499    ALLEN   30      1600.0
7521    WARD    30      1250.0
7566    JONES   20      2975.0
7654    MARTIN  30      1250.0
7698    BLAKE   30      2850.0
7782    CLARK   10      2450.0
7788    SCOTT   20      3000.0
7839    KING    10      5000.0
7844    TURNER  30      1500.0
7876    ADAMS   20      1100.0
7900    JAMES   30      950.0
7902    FORD    20      3000.0
7934    MILLER  10      1300.0

(2)左join语句:

select e.empno,e.ename,d.deptno,e.sal from emp e left join dept d on e.deptno=d.deptno;
【结果:】
e.empno e.ename d.deptno        e.sal
7369    SMITH   20      800.0
7499    ALLEN   30      1600.0
7521    WARD    30      1250.0
7566    JONES   20      2975.0
7654    MARTIN  30      1250.0
7698    BLAKE   30      2850.0
7782    CLARK   10      2450.0
7788    SCOTT   20      3000.0
7839    KING    10      5000.0
7844    TURNER  30      1500.0
7876    ADAMS   20      1100.0
7900    JAMES   30      950.0
7902    FORD    20      3000.0
7934    MILLER  10      1300.0

(3)右join语句:

select e.empno,e.ename,d.deptno,e.sal from emp e right join dept d on e.deptno=d.deptno;
【结果:】
e.empno e.ename d.deptno        e.sal
7782    CLARK   10      2450.0
7839    KING    10      5000.0
7934    MILLER  10      1300.0
7369    SMITH   20      800.0
7566    JONES   20      2975.0
7788    SCOTT   20      3000.0
7876    ADAMS   20      1100.0
7902    FORD    20      3000.0
7499    ALLEN   30      1600.0
7521    WARD    30      1250.0
7654    MARTIN  30      1250.0
7698    BLAKE   30      2850.0
7844    TURNER  30      1500.0
7900    JAMES   30      950.0
NULL    NULL    40      NULL

(4)全join语句:

select e.empno,e.ename,d.deptno,e.sal from emp e full join dept d on e.deptno=d.deptno;
【结果:】e.empno e.ename d.deptno        e.sal
7934    MILLER  10      1300.0
7839    KING    10      5000.0
7782    CLARK   10      2450.0
7876    ADAMS   20      1100.0
7788    SCOTT   20      3000.0
7369    SMITH   20      800.0
7566    JONES   20      2975.0
7902    FORD    20      3000.0
7844    TURNER  30      1500.0
7499    ALLEN   30      1600.0
7698    BLAKE   30      2850.0
7654    MARTIN  30      1250.0
7521    WARD    30      1250.0
7900    JAMES   30      950.0
NULL    NULL    40      NULL

 

这篇关于Hive(10):hive支持常用HQL语句的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/998285

相关文章

python常用的正则表达式及作用

《python常用的正则表达式及作用》正则表达式是处理字符串的强大工具,Python通过re模块提供正则表达式支持,本文给大家介绍python常用的正则表达式及作用详解,感兴趣的朋友跟随小编一起看看吧... 目录python常用正则表达式及作用基本匹配模式常用正则表达式示例常用量词边界匹配分组和捕获常用re

Mysql常见的SQL语句格式及实用技巧

《Mysql常见的SQL语句格式及实用技巧》本文系统梳理MySQL常见SQL语句格式,涵盖数据库与表的创建、删除、修改、查询操作,以及记录增删改查和多表关联等高级查询,同时提供索引优化、事务处理、临时... 目录一、常用语法汇总二、示例1.数据库操作2.表操作3.记录操作 4.高级查询三、实用技巧一、常用语

XML重复查询一条Sql语句的解决方法

《XML重复查询一条Sql语句的解决方法》文章分析了XML重复查询与日志失效问题,指出因DTO缺少@Data注解导致日志无法格式化、空指针风险及参数穿透,进而引发性能灾难,解决方案为在Controll... 目录一、核心问题:从SQL重复执行到日志失效二、根因剖析:DTO断裂引发的级联故障三、解决方案:修复

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

SQL BETWEEN 语句的基本用法详解

《SQLBETWEEN语句的基本用法详解》SQLBETWEEN语句是一个用于在SQL查询中指定查询条件的重要工具,它允许用户指定一个范围,用于筛选符合特定条件的记录,本文将详细介绍BETWEEN语... 目录概述BETWEEN 语句的基本用法BETWEEN 语句的示例示例 1:查询年龄在 20 到 30 岁

gitlab安装及邮箱配置和常用使用方式

《gitlab安装及邮箱配置和常用使用方式》:本文主要介绍gitlab安装及邮箱配置和常用使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1.安装GitLab2.配置GitLab邮件服务3.GitLab的账号注册邮箱验证及其分组4.gitlab分支和标签的

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

python判断文件是否存在常用的几种方式

《python判断文件是否存在常用的几种方式》在Python中我们在读写文件之前,首先要做的事情就是判断文件是否存在,否则很容易发生错误的情况,:本文主要介绍python判断文件是否存在常用的几种... 目录1. 使用 os.path.exists()2. 使用 os.path.isfile()3. 使用

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

Mybatis Plus JSqlParser解析sql语句及JSqlParser安装步骤

《MybatisPlusJSqlParser解析sql语句及JSqlParser安装步骤》JSqlParser是一个用于解析SQL语句的Java库,它可以将SQL语句解析为一个Java对象树,允许... 目录【一】jsqlParser 是什么【二】JSqlParser 的安装步骤【三】使用场景【1】sql语