-sql语法-2-

FLINK SQL语法(2) Regular Joins,即常规连接,是Flink中最通用的连接类型。在这种连接下,连接两侧表的任何新记录或变更都是可见的,并会影响整个连接的结果。例如,如果左侧有一条新记录,在连接条件满足的情况下,它将和右侧表的之前和之后的所有记录进行连接。Interval Joins连接两个数据流(或表),并基于相同的关键字(Key)以及一个相对时间区间来进行匹配。这个时间区间由用户指定,包括一个下界(lowerBound)和一个上界(upperBound)。 阅读详情

生产上比较标准的查法:

select * from ruozedata.studentinfo;                   ## 查询所有列
select num,name,age from ruozedata.studentinfo;        ## 查询指定列

排序 order by 滞后

asc升序desc降序
num后面没写默认升序
select num,name,age from ruozedata.studentinfo
where name like 'y%' order by num;        ##不跟默认升序

select num,name,age from ruozedata.studentinfo
where name like 'y%' order by num asc;    ##升序

select num,name,age from ruozedata.studentinfo
where name like 'y%' order by num desc;   ##降序

在这里插入图片描述
在这里插入图片描述

按部门编码排序且按月薪从大到小
select * from emp order by deptno ,sal desc;     ##降序,order by 后面可以跟多个字段排序

限制多少行

限制多少行  where(条件)    limit(限制) 
select * from emp;              ##生产上勿这样会拉垮服务器

select * from emp limit 2;      ##限制两行数据

select * from emp where deptno=10;            ##条件deptno=10

select * from emp where deptno=10 limit 2;      ##条件deptno=10限制两行

聚合函数与分组语法

1聚合函数 sum(薪水) count(人) avg(平均值) max(最大值) min(最小值) 
2分组语法 select xxx,sum (yyy)form t group by xxx       #group by出现的字段 务必出现在 select 后面
#group by 后面可以出现多个字段,取决于对题目的解析
#sum     count(计数) 不分 坑 
# having 过滤 等价于 子表+where

例题

#1.求员工表所有人的薪水和
select
sum(sal) as ss
from emp;

#2.求员工表的各个部门的薪水和
select
deptno,
sum(sal)as ss
from emp
group by deptno;

#3.求员工表的各个部门的薪水和、员工数、平均薪资
select
deptno,
sum(sal)as ssum,
count(ename)as pcount,
sum(sal)/count(ename)as meansal1,

avg(sal)as meansal2

from emp
group by deptno;

#4.找薪水和>9000的是哪个部门?
select
deptno,
sum(sal)as ssal

from emp
group by deptno 
having sum(sal)>9000;

#查询的结果 作为一张表  子表   ##方法二
select *
from
(select
deptno,
sum(sal)as ssal

from emp
group by deptno)as t where t.ssal>9000;

#5 各个部门各个职业薪水和

select       ##查询
deptno,job,  ##部门,职业

sum(sal) as ssum,    薪金求和
count(sal) as pcount   薪水计数,几个人
from emp               从emp表提取数据
group by deptno,job;    分组依据是部门,职业

综合语法

1 where               2 group   by
3 order by            4 limit
20号和30号部门的薪水和,限制两行

select
deptno,job,

sum(sal)as ssum,
count(sal)as pcount
from emp

where deptno !=10           ##1   
group by deptno,job         ##2
order by deptno,ssum desc   ##3
limit 2;                    ##4

join语法 多表

(那张表数据全,以那张表为主)

left join 以左表为主

以左表为主, a<--b,a数据最全  b是匹配  匹配多少算多少 on就是匹配条件

select   查询
a.*,     a表所有
b.*      b表所有


from testa as a    从testa 作为 a
left join testb as b on a.aid=b.bid     左连接    testb 作为 b   在  a.aid关联b.bid

where b.bid is not null;   条件是 b.bid  不为空

right join 以右表为主

以右表为主   a-->b b数据最全  a是匹配  匹配多少算多少 on就是匹配条件

select   查询
a.*,     a表所有
b.*      b表所有


from testa as a    从testa 作为 a
right join testb as b on a.aid=b.bid     右连接    testb 作为 b   在  a.aid关联b.bid

where a.aid is not null;   条件是 b.bid  不为空

在这里插入图片描述

inner join a.b两张表的数据都存在的

select   
a.*,    
b.*     

from testa as a    
inner join testb as b on a.aid=b.bid 

在这里插入图片描述

union all 结果不去重复

union去重复 注意:数量相同 类型相同

full join     spark sql 支持的  但是我们现在学的MySQL 不支持 ,
就用 左连接+ union+右连接 

#select 
#a.*,
#b.*
#from testa as a 
#full join testb as b on a.aid=b.bid;     ##此语法MySQL不支持

查询两个表所有的数据

select   ##查询
a.*,     ##a表所有
b.*      ##b表所有
from     ##从 
testa as a     ##  testa作为a
left join testb as b  on a.aid=b.bid   左连接 testb作为b  作为  a.aid关联b.bid
union   ##合并     两个结果集相同的它只保留一行
select    ##查询
a.*,     ##a表所有
b.*      ##b表所有
from     ##从
testa as a      ##  testa作为a
right join testb as b  on a.aid=b.bid   右连接 testb作为b  作为  a.aid关联b.bid

若案列(数据量的比对)则需:最终是a表是5条,b表是5null则进行增补数据;且7-10多了进行delete删数据。
在这里插入图片描述

select  aid from testa
union all              ##不去重
select  bid from testb;
select  aid from testa
union                   ##去重
select  bid from testb;
                        ## 换表名查询出的数据两者一样,但注意 id名称会发生变化,以前面的为主
select  bid from testb
union                   ##去重
select  aid from testa;

top 1

题目:找到各部门薪金和,top1的职业?

1 每个职业的薪水和,放置创建视图sal薪金

在这里插入图片描述

select                   查询
deptno,job,    部门,职业
sum(sal+ifnull(comm,0))        求和(薪金+佣金)    ##因为null+值都为null ,所以(薪金+如果为空(佣金,0))
from  emp         从emp表中
group by  deptno,job;     分组为部门,职业

在这里插入图片描述

drop view sal;                       ##放置视图  sal

create view  sal    ##创建视图薪金  sal
as                        ## 作为

select               ##查询
deptno,job,     ##部门,职业
sum(sal+ifnull(comm,0)) as sal       ##求和(薪金+佣金)作为薪金
from  emp                                      ## 从emp表中
group by  deptno,job;                  ##分组为部门,职业

select * from sal;             查询   薪金

在这里插入图片描述

2.通过上面算出各部门的职业的薪水和,进一步算top1的职业?

select     查询
a.*        (a是做的别名)a表所有字段
from sal a    从 薪金 a
where      条件
(
select count(*) from sal b   ##查询   计数(结果集的总条数) 从薪金 b   为0的数据是top1职业
where a.deptno=b.deptno   条件 a表的部门编号=b表的部门编号
and a.sal<b.sal    和 a表的薪水小于b表的薪水       ## ##count 此处原理是:同部门 b表薪水大于a表薪水的count
) =0                   =0                                         
order by a.deptno;     排序依据  a表部门编号  不跟默认升序

##上面语句出现的a.b表是,通过第一步创建的视图sal薪金,一个表设置别名为a,一个表设置别名为b。不同的表,但内容一样,有一种说法叫作表自己union关联自己。

在这里插入图片描述

SparkSQL DSL与SQL中union和union all的区别 这两种方法都支持使用union和union all操作符来合并多个查询结果集。本文将详细介绍SparkSQL DSL与SQL中union和union all的区别,并提供相应的源代码示例。因此,在选择使用union还是union all时需要根据具体的需求和数据特点进行权衡。希望本文对你理解SparkSQL DSL与SQL中union和union all的区别有所帮助。union操作符用于合并两个查询的结果集,并消除其中的重复记录。SparkSQL DSL与SQL中union和union all的区别。 阅读详情

相关推荐

NL2SQL:利用FOL和语法分析构建自然语言到SQL的查询接口

自然语言处理接口(NLP Interface)是一类特殊的软件组件,它作为用户和计算系统的中间层,将用户用自然语言表达的指令转换成计算机能够理解和执行的机器指令。它的主要作用包括简化用户与复杂系统之间的交互,以及将人类的自然语言转换为结构化的数据或查询语句,使得用户无需直接了解系统的内部逻辑。接口在数据查询中的应用可以具体体现在将自然语言输入转换为相应的SQL查询语句,以供数据库执行。这种技术特别适合那些不熟悉SQL语言的非技术人员,因为它大大降低了他们进行数据查询的难度。

weixin_36427956的博客 1155

Spark CTAS union all (union all的个数很多)导致超过spark.driver.maxResultSize配置(1G)

spark CTAS nuion all (union all的个数很多)导致超过spark.driver.maxResultSize配置(2G)

monkeyboy_tech的博客 3041

全面掌握SQL2中的DML语法与实践

本文还有配套的精品资源,点击获取 简介:SQL2是关系数据库语言的国际标准,DML是其核心组成部分,涉及对数据的增、删、改、查操作。本文详细介绍了DML的基本语法,如INSERT、UPDATE和DELETE操作,并探讨了SQL2的增强特性,例如子查询、多种JOIN操作、GROUP BY与聚合函数。此外,还探讨了PL/SQL与SQL2的关系,以及如何在Java中使用SQL2语...

weixin_29476595的博客 1299

记录一次SparkSQL union all语法错误

以前在数据库工具上执行Hive QL用到union all时 直接这样写即可 select a union all select b union all select c 但是换到SparkSQL中执行却提示错误 diagnostics: User class threw exception: org.apache.spark.sql.catalyst.parser.ParseException: mismatched input ‘union’ expecting (line 18, pos 0)

枪枪枪的博客 3403

AI 辅助代码审查:开启代码质量管控的智能时代

AI辅助代码审查正在改变传统的代码质量管控方式。通过自动化分析、智能反馈和上下文感知,AI不仅提高了代码审查的效率,还提升了代码质量的一致性和可维护性。随着机器学习和深度学习技术的不断发展,未来AI将成为开发者日常工作中强大的助手,进一步推动软件开发向智能化、自动化方向发展。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 3228

如何使用 Ansys OptiSlang 同时运行多个参数化设计研究

了解如何通过使用 OptiSLang 同时运行多个参数化设计研究来提高工作效率。

jkh920184196的博客 2382

spark-sql 多表关联( union all) TaskMemoryManager: Failed to allocate a page (8388608 bytes)

如果资源充足那就需要增加driver内存和调整spark.sql.autoBroadcastJoinThreshold内存,可以根据需要开启spark.broadcast.compress=true。因为spark.sql.adaptive.enabled=true开启自动调优,spark.sql.autoBroadcastJoinThreshold=2G。在使用多表关联的时候慎重开启spark.sql.adaptive.enabled=true。

赵英超的博客 585

数字IC后端设计实现 | PR工具中到底应该如何控制density和congestion?(ICC2&Innovus)

数字IC后端设计实现中到底应该如何控制cell density和congestion?(ICC2和Innovus两种解决方案)

weixin_37584728的博客 7112

sparksql : 数据库表连接的简单解释

表的连接分成好几种类型。 内连接(inner join) 外连接(outer join) 左连接(left join) 右连接(right join) 全连接(full join) 只返回两张表匹配的记录,这叫内连接(inner join)。 返回匹配的记录,以及表 A 多余的记录,这叫左连接(left join)。 返回匹配的记录,以及表 B 多余的记录,这叫右连接(righ...

zhuchunyan_aijia的博客 1951

【四旋翼】pixhawk2.4.8-地面站配置-APM固件-四旋翼从装机到试飞

因为MP版本和APM版本的适配问题,真的真的是很大一个坑。最好先走别人走过的路,走通了再去自由发挥,不然白白浪费时间。下面提供我试飞成功过的版本。下面提供任意版本固件和地面站的下载方法。

xifan的博客 3万+

BSW:MemMap模块配置及使用

(内存映射(MemMap)模块用于通过内存映射文件将代码和数据映射到特定的内存部分。MemMap生成特定的头文件,其中包含为MemorySection元素和编译器特定指令定义的内存映射预处理器。上面是比较官方的回答,说人话就是把数据和代码放在ECU内指定的地址。初级应用:软件中的bss,data,rodata,code,text,段需要在memory layout中划分具体的物理地址,对于多核系统,要将执行的数据和代码放在目标核的RAM和ROM。

Forever_Oct的博客 3675

在Sublime Text 2中为dol文件设置默认SQL语法

为什么80%的码农都做不了架构师?>>> ...

weixin_34281477的博客 1668

OpenCv案例(七): 基于OpenCvSharp计算图像的清晰度(自动对焦)

自动对焦,其实是对相机成像的清晰值得计算,若对焦不清晰,成像的清晰度低,视觉效果模糊。若是在工业检测行业,对焦不准确,可能会造成严重后果;对焦准确的图像,其清晰度高,对比度鲜明,层次明显。

qq_37835727的博客 7113

H2 SQL语法

SQL Grammar 字面量 ValueApproximate numericArrayBooleanBytesDateDate and timeDollar Quoted StringExact numericHex NumberIntGEOMETRYJSON LongNullNumberNumericStringUUIDTimeTime with time zoneTimestampTimestamp with time zoneIntervalINTERVAL YEARINTERVAL .

纸上得来终觉浅,绝知此事要躬行 2496

广工计组实验f2一位全加器

一位全加器实验

weixin_63692154的博客 2847

Java 实现 MP3 音频合并工具类:摆脱 FFmpeg,高效低 CPU 的纯本地方案【需求已解决】

本方案充分发挥了 Java 音频 SPI 的潜力,实现了轻量、跨平台、低 CPU 消耗的 MP3 音频合并工具类。 对于希望在服务器或桌面应用中集成音频处理功能的开发者而言,这无疑是一个可行且优雅的解决方案。

一键难忘的博客 543

错误2mysql,Mysql2 :: Error:您的SQL语法有错误

I just used this to switch my rails app db from sqlite3 to mysql2 and that seemed to work out properly.But when I start up my app I'm now getting this:A ActionView::Template::Error occurred in pages#d...

weixin_33640304的博客 162

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

2.SQL语法基础

DQL 是 SQL 中专门用于查询数据的子语言,核心语句是 SELECT。DQL 不修改数据,仅用于从数据库中检索数据,支持复杂条件过滤、多表关联、分组统计、排序分页等操作。

sucker的博客 1266

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

SQL教程(2):SQL基础语法及用途

本文深入介绍了SQL的基本语法,包括数据查询、过滤、排序、分组及表连接等操作,并通过实际案例展示了SQL在用户研究中的应用,如用户行为分析、用户细分、用户留存分析及满意度调查数据分析。

hyang1226的博客 1144

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

SQL语法2

sql语句扫尾

ssslq的博客 529

从语法到语义:构建大模型NL2SQL执行准确率的全链路保障体系

本文深入探讨了如何构建大模型NL2SQL执行准确率的全链路保障体系,从语法正确性、语义准确性到执行可行性三个维度提供解决方案。通过语法规则硬约束、业务语义深度对齐及实时元数据校验等技术手段,显著提升SQL生成准确率,特别适用于电商、金融等需要高精度数据库交互的场景。

weixin_29062963的博客 241

Expression2Sql的一些语法更新

前言   前一阵子给大家介绍了一个可以将Expression表达式树解析成Transact-SQL的项目Expression2Sql。  之后得到了广大读者的一些好评,也使得博主更有动力继续更新下去,然后一些园友也给出了一些极具建设性的意见,也有部分园友反馈了一些bug。最近一段时间,博主也集中精力,抽出一些时间做了一次更新,本篇文章将介绍本次更新的内容。 简单易用,几分钟即...

anooexi30952的博客 231

公共sql提取_收藏 | 超详细 SQL 语法知识点!Part.2

本文SQL语法知识点Part2,没有看过Part1的小伙伴可以去《收藏 | 超详细 SQL 语法知识点!——Part.1》复习哦4连接和组合1. 连接(JOIN)如果一个 JOIN 至少有一个公共字段并且它们之间存在关系,则该 JOIN 可以在两个或多个表上工作。连接用于连接多个表,使用 JOIN 关键字,并且条件语句使用 ON 而不是 WHERE。JOIN 保持基表(结构和数据)不变。JOIN ...

weixin_42292855的博客 206

h2数据库支持mysql语法吗_H2内存数据库对sql语句的支持问题 sql放到mysql数据库中能跑...

该楼层疑似违规已被系统折叠隐藏此楼查看此楼### The error may involve com.yrs.modules.classes.stu.teacher.mapper.ClassesStuTeacherMapper.queryStudentInfoByclasses### The error occurred while executing a query### SQL: SELEC...

weixin_35662417的博客 402

SQL高级语法2

SQL UNION 和 UNION ALL 操作符SQL UNION 操作符UNION 操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。SQL UNION 语法SELECT column_name(s) FROM table_name1 UNIO...

mikasoi的博客 219
上一篇: 大数据 环境搭建
下一篇: -SQL—语法常见的抛错
吾..二..二
博客等级 码龄8年 4粉丝 36原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值