hive高级查询

-- 查询语句
SELECT 5,"student",88.5;
SELECT * FROM student;
SELECT name,id,id,name FROM student WHERE id>1002;
SELECT * FROM student limit 2;【注意:只能有一个参数】
SELECT * FROM student WHERE name rlike '(j|r).*';
SELECT sex,avg(mark) FROM score GROUP BY sex;
SELECT sex,avg(mark) avg_mark FROM score GROUP BY sex HAVING avg_mark>79;

SELECT id,name FROM (
    SELECT id,name FROM (
        SELECT id,name FROM student) t
    ) t;

-- CTE【Common Table Expression,公共表表达式】
WITH t1 AS(
    SELECT id,name FROM student
),t2 AS(
    SELECT id,name FROM t1
)
SELECT id,name FROM t2;

-- 准备数据
DROP TABLE IF EXISTS student;
CREATE TABLE IF NOT EXISTS student
(
    id int,
    name string,
    gid int
)row FORMAT delimited
fields terminated BY ',';

CREATE TABLE IF NOT EXISTS grade
(
    id int,
    name string
)row FORMAT delimited
fields terminated BY ',';

LOAD data local inpath '/root/data/student.txt' overwrite INTO TABLE `student`;
LOAD data local inpath '/root/data/grade.txt' overwrite INTO TABLE grade;

-- 各种连接
SELECT *
FROM student,grade;

SELECT *
FROM student CROSS join grade;

SELECT *
FROM student s CROSS join grade g
WHERE s.gid=g.id;

SELECT *
FROM student s inner join grade g
on s.gid=g.id;

SELECT *
FROM student s left join grade g
on s.gid=g.id;

SELECT *
FROM grade g left join student s
on s.gid=g.id;

SELECT *
FROM grade g full join student s
on s.gid=g.id;

-- 联合
DROP TABLE t1;
CREATE TABLE t1
(
    c11 int,
    c12 string
)row FORMAT delimited
fields terminated BY ',';
DROP TABLE t2;
CREATE TABLE t2
(
    c21 string,
    c22 string
)row FORMAT delimited
fields terminated BY ',';

LOAD data local inpath '/root/data/union2.txt' overwrite INTO TABLE `t1`;
LOAD data local inpath '/root/data/union2.txt' overwrite INTO TABLE `t2`;

-- 注意,字段个数一样,字段名称一样
SELECT c11,c12 FROM t1
UNION ALL 
SELECT c21 c11,c22 c12 FROM t2;

SELECT DISTINCT * FROM (
    SELECT c11,c12 FROM t1
    UNION ALL
    SELECT c21 c11,c22 c12 FROM t2
) t;

WITH t0 AS(
    SELECT c11,c12 FROM t1
    UNION ALL 
    SELECT c21 c11,c22 c12 FROM t2
) SELECT DISTINCT * FROM t0;

WITH t0 AS(
    SELECT c11,c12 FROM t1
    UNION ALL 
    SELECT c21 c11,c22 c12 FROM t2
) SELECT c11,c12 FROM t0 GROUP BY c11,c12;

-- 插入数据
INSERT INTO TABLE t1(c11,c12) VALUES(55,66);
INSERT INTO TABLE t1 VALUES(77,88),(99,00);
INSERT OVERWRITE TABLE t1 VALUES(77,88),(99,00);

CREATE TABLE t3 LIKE t1;
INSERT INTO TABLE t3 SELECT c11,c12 FROM t1;
INSERT OVERWRITE TABLE t3 SELECT c11,c12 FROM t1;

-- 业务数据备份,表->文件【备份数据】
INSERT overwrite directory '/test/num1/num2' SELECT c11,c12 FROM t1;【hdfs自建目录】
INSERT overwrite local directory '/root/data/num1/num2' SELECT c11,c12 FROM t1;【linux自建目录】
INSERT overwrite local directory '/root/data/num1/num2'
row FORMAT delimited fields terminated BY ','
SELECT c11,c12 FROM t1;

-- 同一表多目录
FROM t1
INSERT overwrite directory '/test/num1/num2' SELECT c11,c12 
INSERT overwrite local directory '/root/data/num1/num2'
row FORMAT delimited fields terminated BY ','
SELECT c11,c12;

-- 业务数据和元数据备份,表->文件【备份表】
export TABLE t1 TO '/test/num3/num4';【hdfs自建目录】
import TABLE t1 FROM '/test/num3/num4';【一次操作,不能覆盖】

-- 排序【升序asc(默认),降序desc】
SELECT * FROM score ORDER BY mark;
SELECT * FROM score ORDER BY mark desc;

CREATE TABLE sort
(
    id int,
    name string
)row FORMAT delimited
fields terminated BY ',';
LOAD data local inpath '/root/data/sort.txt' overwrite INTO TABLE `sort`;
SELECT * FROM sort;

set mapreduce.job.reduces = 4;

SELECT * FROM sort distribute BY id;
SELECT * FROM sort distribute BY id sort BY id;

INSERT overwrite local directory '/root/data/sort'
SELECT * FROM sort distribute BY id sort BY id;

INSERT overwrite local directory '/root/data/sort'
SELECT * FROM sort cluster BY id;

相关推荐

  1. hive高级查询

    2023-12-23 07:44:03       54 阅读
  2. hive高级查询(2)

    2023-12-23 07:44:03       42 阅读
  3. Hive高级语法

    2023-12-23 07:44:03       54 阅读
  4. mysql高级查询

    2023-12-23 07:44:03       49 阅读
  5. Hive07_多表查询

    2023-12-23 07:44:03       53 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-23 07:44:03       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-23 07:44:03       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-23 07:44:03       82 阅读
  4. Python语言-面向对象

    2023-12-23 07:44:03       91 阅读

热门阅读

  1. MAX96712学习记录及编程实践

    2023-12-23 07:44:03       59 阅读
  2. 鼠标悬浮在树组件节点上展示当前节点名称

    2023-12-23 07:44:03       56 阅读
  3. Linux基础 - Linux ARM 原子读写

    2023-12-23 07:44:03       53 阅读
  4. [node] Node.js的全局对象Global

    2023-12-23 07:44:03       48 阅读
  5. ip addr和ifconfig区别

    2023-12-23 07:44:03       62 阅读
  6. vue3 H5项目中实现PDF预览

    2023-12-23 07:44:03       57 阅读
  7. 面试经典150题(42-44)

    2023-12-23 07:44:03       53 阅读
  8. Vue中转换HTML为PDF

    2023-12-23 07:44:03       59 阅读