sql进阶,多表及关联

news/2024/10/31 3:24:49/

–odps sql

–author:宋文理
–create time:2023-02-01 16:24:24

– 创建非分区表
CREATE TABLE csxx_ffq(
rq STRING COMMENT ‘日期’,
xh BIGINT COMMENT ‘序号’,
sj STRING COMMENT ‘数据’
)
COMMENT ‘测试数据(非分区表)’;

– 创建分区表
CREATE TABLE csxx_fq(
xh BIGINT COMMENT ‘序号’,
sj STRING COMMENT ‘数据’
)
COMMENT ‘测试数据(非分区表)’
PARTITIONED by(rq STRING COMMENT ‘日期’);

– 导入文件数据到非分区表620条数据
select * from csxx_ffq ;

– 采取多路输出的方式,将非分区表中的数据插入到分区表中
– 插入数据多路输出方式 非分区表->分区表
from csxx_ffq
insert overwrite table csxx_fq partition(rq=‘20180101’)
select xh,sj where rq=‘20180101’
insert overwrite table csxx_fq partition(rq=‘20180102’)
select xh,sj where rq=‘20180102’
insert overwrite table csxx_fq partition(rq=‘20180103’)
select xh,sj where rq=‘20180103’
insert overwrite table csxx_fq partition(rq=‘20180104’)
select xh,sj where rq=‘20180104’
insert overwrite table csxx_fq partition(rq=‘20180105’)
select xh,sj where rq=‘20180105’
insert overwrite table csxx_fq partition(rq=‘20180106’)
select xh,sj where rq=‘20180106’;

– 列出表的已有分区
show PARTITIONS csxx_fq;
– 查询数据
read csxx_fq;
– select * from csxx_fq; 该句错误,分区表select应该指定分区

– 动态分区方式
– 插入数据动态分区方式
– 从普通表向分区表中插入数据应该使用该方式
insert overwrite table csxx_fq partition(rq)
select xh,sj,rq from csxx_ffq;
– 查询数据
read csxx_fq;

– union all 将多个查询语句返回的结果集合进行合并处理
select a.* from(
select * from xsxx where bjbh=‘0101’
union all
select * from xsxx where bjbh=‘0104’
)a;

– 子查询举例 创建三张表并通过本地文件导入数据
– 创建商品信息表
create table if not exists spxx(
cbbh STRING COMMENT ‘出版编号’,
spmc STRING COMMENT ‘商品名称’,
splb STRING COMMENT ‘商品类别’,
spjg STRING COMMENT ‘商品价格’,
pjdj STRING COMMENT ‘评价等级’
)COMMENT ‘商品信息表’;

– 创建出版社信息表
create table if not exists cbsxx(
cbsbh STRING COMMENT ‘出版社编号’,
cbbh STRING COMMENT ‘出版编号’,
cbsmc STRING COMMENT ‘出版社名称’,
cbsj STRING COMMENT ‘出版时间’,
spmc STRING COMMENT ‘商品名称’
)COMMENT ‘出版社信息表’;

– 创建电商信息表
create table if not exists dsxx(
dsptbh STRING COMMENT ‘电商平台编号’,
dsptmc STRING COMMENT ‘电商平台名称’,
cbsmc STRING COMMENT ‘出版社名称’,
spmc STRING COMMENT ‘商品名称’
)COMMENT ‘电商信息表’;

select * from spxx;
select * from cbsxx;
select * from dsxx;

– join操作
select a.dsptmc,a.cbsmc,s.*
from spxx s
left outer join(
select d.dsptmc,d.dsptbh,c.cbsmc,c.cbbh
from dsxx d
left outer join cbsxx c
on d.cbsmc=c.cbsmc
)a
on s.cbbh=a.cbbh;

– 优化
select a.dsptmc,a.cbsmc,s.*
from spxx s
left outer join(
select d.dsptmc,c.cbsmc,c.cbbh from cbsxx c
right outer join dsxx d on d.cbsmc=c.cbsmc
)a
on s.cbbh=a.cbbh;
在这里插入图片描述


http://www.ppmy.cn/news/21378.html

相关文章

1611_PC汇编语言_math例程分析

全部学习汇总: GreyZhang/g_unix: some basic learning about unix operating system. (github.com) 这一次分析后带有注释的代码我会在笔记最后做一个完整的附加。 这一个例程,主要是为了阐述前面讲到的数学运算。但是从这些操作中,很多底层…

AXI 总线协议学习笔记(2)

引言 从本文开始,正式系统性学学习AXI总线。 如何获取官方协议标准? 第一步:登陆官网:armDeveloper 第二步:登录,无账号需要注册 第三步:点击文档 第四步: 第五步:浏…

BeanUtils源码解析

🍁 作者:知识浅谈,CSDN博客专家,阿里云签约博主,InfoQ签约博主,华为云云享专家,51CTO明日之星 📌 擅长领域:全栈工程师、爬虫、ACM算法 💒 公众号&#xff1a…

Axios网络请求

哈喽~大家好,这篇来看看Axios网络请求。 ​文章推荐链接SpringCloud Sentinel 使用SpringCloud Sentinel 使用将Nacos注册到springboot使用以及Feign实现服务调用将Nacos注册到springboot使用以及Feign实现服务调用微服务介绍与 SpringCloud Eureka微服务介绍与 Sp…

Java程序设计实验3 | 面向对象(上)

*本文是博主对Java各种实验的再整理与详解,除了代码部分和解析部分,一些题目还增加了拓展部分(⭐)。拓展部分不是实验报告中原有的内容,而是博主本人自己的补充,以方便大家额外学习、参考。 目录 一、实验…

OAuth2介绍

目录 一、什么是OAuth2 二、OAuth2中的角色 三、认证流程 四、令牌的特点 五、OAuth2授权方式 授权码 隐藏方式 密码方式 凭证方式 一、什么是OAuth2.0 概念:第三方授权解决方案 OAuth2.0是目前使用非常广泛的授权机制,用于授权第三方应用获取…

【Redis】.net core 3.1 Redis安装和简单使用

Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。 简单来说,就是一个键值对数据库。 Redis支持的…

【DataX】datax | datax-web | win搭建datax-web环境

一、环境准备 1、jdk8 2、maven 3、mysql7 4、python3 5、window10 6、idea 7、2345解压(win支持tar.gz解压) 8、git 二、操作步骤 1、datax操作步骤 1)下载datax http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz 2&am…