首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL的几种连接:内连接、左联接、右连接、全连接、交叉连接

stu表 1.内连接 1.1.等值连接:在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列...1.3.自然连接:在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。...2.外连接 2.1.左联接:是以左表为基准,将a.stuid = b.stuid的数据进行连接,然后将左表没有的对应项显示,右表的列为NULL select * from book as a left...join stu as b on a.sutid = b.stuid 2.2.右连接:是以右表为基准,将a.stuid = b.stuid的数据进行连接,然以将右表没有的对应项显示,左表的列为NULL...当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

3.3K40

10个数据清洗小技巧,快速提高你的数据质量

4、字段去重 强烈建议把去重放在去除空格之后,因为多个空格导致工具认为“顾纳”和“顾 纳”不是一个人,去重失败。 按照“数据”-“删除重复项”-选择重复列步骤执行即可。...(单选一列表示此列数据重复即删除,多选表示多个字段都重复才删除。) ? 5、填补缺失值 由于人工录入或者数据爬虫等多方面的原因,会出现缺失值的情况,这就需要我们寻找漏网之“数据”,填充空缺值。...(3)根据数据的分布情况,可以采用均值、中位数、或者众数进行数据填充。 数据均匀,均值法填充;数据分布倾斜,中位数填充。 (4)用模型计算值来代替缺失值。 回归:基于完整的数据集,建立回归方程。...将已知属性值代入方程来估计未知属性值,以估计值来进行空值得填充。 极大似然估计:基于缺失类型为随机缺失得条件下,假设模型对于完整的样本是正确的,通过观测数据的边际分布可以对缺失数据进行极大似然估计。...7、拆分单元格 按照以下步骤对合并单元格进行拆分并填充: (1)点击取消合并单元格 ? (2)空白单元格定位:点击定位-选择空白 ? (3)写上=上个单元格 ?

2K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    SQL查询的高级应用

    1、选择所有列   例如,下面语句显示testtable表中所有列的数据: SELECT * FROM testtable 2、选择部分列并指定它们的显示次序   查询结果集合中数据的排列顺序与选择列表中所指定的列名排列顺序相同...例如: SELECT * FROM usertable ORDER BY age desc,userid ASC   另外,可以根据表达式进行排序。...内连接分三种: 1、等值连接: 在连接条件中使用等于号(=)运算符比较被连接列的列值,其查询结果中列出被连接表中的所有列,包括其中的重复列。...3、自然连接: 在连接条件中使用等于(=)运算符比较被连接列的列值,但它使用选择列表指出查询结果集合中所包括的列,并删除连接表中的重复列。...authors 和publishers 表中重复列(city和state): SELECT a.

    3K30

    Hive优化器原理与源码解析系列—统计信息之选择性

    //遍历Join Condition关联条件(考虑的是没where条件的模块),来构建非重复记录数的选择性。...Math.pow(1 / 2.0, i)); ndvCrossProduct *= n; } return ndvCrossProduct; } 5)从给定投影Project集合和投影列序数与基数(非重复列记录数...)映射关系Map,选择最大NDV(非重复值个数量number of distinct value) /** * 从投影列集合中选列最大基数 * * @param colStatMap...投影列序数,基数(非重复列记录数)映射关系 * @param projectionSet 投影列序数集合 * @param defaultMaxNDV 默认最大基数 * @return...Double maxNDVSoFar = defaultMaxNDV; for (Integer projIndx : projectionSet) { //遍历投影列集合,比较投影列序数,基数(非重复列记录数

    1.4K20

    机器学习建模高级用法!构建企业级AI建模流水线 ⛵

    sklearn.impute import SimpleImputer from sklearn.preprocessing import OneHotEncoder, MinMaxScaler # 常数列、缺失列、重复列...imblearn 和 feature-engine 工具包,我们做一个简单的说明:Imblearn 可以处理类别不平衡的分类问题,内置不同的采样策略 feature-engine 用于特征列的处理(常数列、缺失列、重复列...这里使用 dtype_include 参数选择对应类型的列,这个函数也可以提供列名列表或正则表达式来选择。...这里我们会采用到一个叫做 im``blearn 的工具库来处理类别非均衡问题,它提供了一系列数据生成与采样的方法来缓解上述问题。 本次选用 SMOTE 采样方法来对少的类别样本进行重采样。...article-detail/203 Imblearn 处理类别不平衡的分类: https://imbalanced-learn.org/stable/ feature-engine 特征列的处理(常数列、缺失列、重复列等

    1.2K42

    (数据科学学习手札06)Python在数据框操作上的总结(初级篇)

    suffixes:一个元组,储存对两个数据框中重复非联结键列进行重命名的后缀,默认为('_x','_y') indicator:是否生成一列新值_merge,来为合并后的每行标记其中的数据来源,有left_only...right'与之相反;'inner'表示取两个数据框联结键列的交集作为合并后新数据框的行;'outer'表示以两个数据框联结键列的并作为新数据框的行数依据,缺失则填充缺省值  lsuffix:对左侧数据框重复列重命名的后缀名...rsuffix:对右侧数据框重复列重命名的后缀名 sort:表示是否以联结键所在列为排序依据对合并后的数据框进行排序,默认为False left = pd.DataFrame({'A': ['A0',...6.数据框的抽样筛选 利用df.sample()来对原数据框进行一定比例的随机抽取并打乱顺序,主要参数如下: frac:返回的抽样行数占总行数的比例,若想进行全排列则设置为1 replace:采取放回还是不放回...8.数据框元素的去重 df.drop_duplicates()方法: 参数介绍: subset:为选中的列进行去重,默认为所有列 keep:选择对重复元素的处理方式,'first'表示保留第一个,'last

    14.3K51

    pandas系列4_合并和连接

    Series;改成axis=1,变成一个DF型数据 axis axis=0:默认是Series axis=1:得到DF数据,缺值用NaN补充 join outer:合并,缺值用nan inner:求交集,非交集部分直接删除...参与合并的右侧DF how 默认是inner,inner、outer、right、left on 用于连接的列名,默认是相同的列名 left_on \right_on 左侧、右侧DF中用作连接键的列 sort 根据连接键对合并后的数据进行排序...,默认是T suffixes 重复列名,直接指定后缀,用元组的形式(’_left’, ‘_right’) left_index、right_index 将左侧、右侧的行索引index作为连接键(用于index...1.0 1.0 2 a 2.0 0.0 3 a 4.0 0.0 4 a 5.0 0.0 5 c 3.0 NaN 6 c 6.0 NaN 7 d NaN 2.0 重复列名处理 left = pd.DataFrame...,key2重复了,默认是在key2的后面添加_x、_y key1 key2_x lval key2_y rval 0 foo one 1 one 4 1 foo one 1 one 5 2 foo

    78910

    无码实现​从非数字到数字拆分到行,是怎么做到的?| Power Query技巧

    下面,我们就直接通过案例步骤来讲解操作方法: Step-01 重复列 因为我们要考虑保留原数据列,所以,先对列进行重复。...Step-02 按分隔符拆分列 虽然我们最后要按“从数字到非数字”进行拆分,但是,我们要借助按分隔符可以拆分到行的方法: 在按分隔符拆分中选择拆分为“行”: 此时,我们通过观察可以发现,生成的步骤中...,其实是通过一个splitter函数来实现拆分的,而“到行”是通过Table.ExpandListColumn函数进行扩展得到的: 所以,如果我们改变了其中的Splitter参数,就能实现不同方式拆分到行的功能...,其中也带了Splitter的参数: 这样,我们可以选择这个Splitter参数,并复制: Step-04 替换前一步骤“按分隔符拆分列”中的Splitter参数 回到“按分隔符拆分列”的步骤,粘贴替换掉原来按分隔符拆分的...Splitter参数,马上就得到从非数字到数字的拆分到行的效果: Step-05 删掉按从非数字到数字拆分列的步骤 生成这个步骤的目的是为了方便复制其中的Splitter参数,复制好了就可以删掉了:

    1.1K10

    pyspark之dataframe操作

    、创建dataframe 3、 选择和切片筛选 4、增加删除列 5、排序 6、处理缺失值 7、分组统计 8、join操作 9、空值判断 10、离群点 11、去重 12、 生成新列 13、行的最大最小值...spark.createDataFrame(department, schema=["emp_id","departement"]) department.show() # 2.连接 # join默认是内连接,最终结果会存在重复列名...# 如果是pandas,重复列会用_x,_y等后缀标识出来,但spark不会 # join会在最后的dataframe中存在重复列 final_data = employees.join(salary...department, on='emp_id', how='left') final_data.show() 在join操作中,我们得到一个有缺失值的dataframe,接下来将对这个带有缺失值的dataframe进行操作...df1.dropDuplicates().show() # 只要某一列有重复值,则去重 df1.dropDuplicates(subset=['FirstName']).show() # pandas

    10.5K10

    基于Excel2013的PowerQuery入门

    成功填充.png 选择导航栏中的开始中的关闭并加载至,出现下图所示,填入现有工作表的你想填入的位置。 ? 加载设置.png ?...5.删除重复项 在下载文件中打开05-删除重复项.xlsx,如下图所示。 ? 删除重复项1.png ?...加载数据到PowerQuery中.png 客户首次购买分析 选定下单日期这一列,进行升序排序。 ? 下单日期升序排序.png 选定客户名称这一列,进行删除重复项 ?...对客户名称删除重复项.png ? 首次购买分析结果.png 客户最大订单分析 选定金额这一列,进行降序排序 ? 金额降序排序.png 选定客户名称这一列,进行删除重复项 ?...客户最大订单分析结果.png 多次购买客户分析 选定客户名称这一列,进行保留重复项 ? 保留重复项按钮位置.png 只有1次购买记录的客户会被删除,多次购买记录的客户会被保留。

    10.2K50

    数据导入与预处理-课程总结-04~06章

    ;'time’代表根据时间长短进行填充;‘index’、'values’代表采用索引的实际数值进行填充;'nearest’代表采用最临近插值法进行填充;'barycentric’代表采用重心坐标插值法进行填充...keep:表示采用哪种方式保留重复项,该参数可以取值为’first’(默认值)、 'last '和 ‘False’,其中’first’代表删除重复项,仅保留第一次出现的数据项;'last '代表删除重复项...,该参数可以取值为’first’(默认值)、 'last ‘和’False’,其中’first’代表删除重复项,仅保留第一次出现的数据项;'last '代表删除重复项,仅保留最后一次出现的数据项;'False...’表示删除所有的重复项。...lsuffix: 左DataFrame中重复列的后缀 rsuffix: 右DataFrame中重复列的后缀 sort: 按字典序对结果在连接键上排序 join方式为按某个相同列进行join: score_df

    13.1K10

    数据库知识点总结

    第二范式: 首先要满足第一范式,每个非主属性是由整个主键函数决定的,而不能由主键的一部分来决定. 第三范式: 第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息....,将分表合成一个大表. # 异:自然连接消除重复列,而等值连接不会....封锁协议 两阶段封锁协议 # 保证可串行性的一个协议是两阶段封锁协议(阐明了事务何时对数据库中的数据项进行加锁和解锁)....# 两阶段封锁和快照隔离 锁 引入锁的原因 # 确保隔离性,要求对数据项以互斥的方式进行访问 锁的种类 共享型 # 如果事务A获得了数据项Q上的共享型锁, 则A可读但是不能写Q 排他性 # 如果事务A...# 选择运算选出满足给定谓词的元组 投影运算 # 投影运算返回作为参数的关系的某些属性 自然连接运算 # 自然连接将某些选择和笛卡尔积运算合并为一个运算 数据库 数据库系统的基本功能 # 数据库定义

    85910

    数据城堡参赛代码实战篇(二)---使用pandas进行数据去重

    sum() 首先我们根据id和how两列对数据进行分组,并对分组结果中的amount列进行求和运算,返回最后的结果。...1.2 pivot_table pivot_table是pandas提供的透视表函数,它根据一个或多个键对数据进行聚合,并根据行列上的分组键将数据分配到各个矩形区域中。...,但是上面两条数据的time_stamp是不一样的呀,无法进行去重,但我们注意到二者在精确到天时数据是一样的,因此我们只需要截取其中的年月日信息,二者就会变成两条重复数据。...,示例如下: library_df.drop_duplicates(['id','time_stamp'],keep='last',inplace=True) 可以看到我们指定了三个参数,第一个参数是根据哪几列进行去重的列表...,这里我们指定了id和time_stamp两列,如果两条数据的这两列值相同,则会被当成重复列对待。

    1.4K80

    Pandas常用的数据处理方法

    上面两个表有两列重复的列,如果只根据一列进行合并,则会多出一列重复列,重复列名的处理我们一般使用merge的suffixes属性,可以帮我们指定重复列合并后的列名: pd.merge(left,right...上面的on、left_on、right_on都是根据列值进行合并的,如果我们想用索引进行合并,使用left_index 或者 right_index属性: left1 = pd.DataFrame({'...移除重复数据,使用drop_duplicates方法,该方法默认判断全部列,不过我们也可以根据指定列进行去重. data = pd.DataFrame({'k1':['one']*3 + ['two'...,系统会保留第一项,即keep参数的默认值为first,不过我们也可以保留最后一项,只需将keep参数设置为last即可: data.drop_duplicates(['k2'],keep='last'...4.3 数据透视表 透视表是各种电子表格程序和其他数据分析软件中一种常见的数据汇总工具,它根据一个或多个键对数据进行聚合,并根据行和列伤的分组键将数据分配到各个矩形区域中。

    8.4K90

    连接查询和子查询哪个效率高

    ,然后根据deparment_id查到location_id然后查city字段就行了 //根据上述表查询emloyee_id的所在城市是长沙的(相当于就是无限套娃) SELECT employee_id...ON a.department_id = b.department_id 等值连接和自然连接 1.等值连接(相等连接): 使用”=”关系将表连接起来的查询,其查询结果中列出被连接表中的所有列,包括其中的重复列...进行自然连接运算要求两个表有共同属性(列),自然连接运算的结果表是在参与操作的两个表的共同属性上进行等值连接后,再去除重复的属性后所得的新表。...2)等值连接不将重复属性去掉,而自然连接去掉重复属性,也可以说,自然连接是去掉重复列的等值连接。 3、连接查询和子查询哪个效率高呢? ​ 首先两者不存在谁优于谁的说法,只是那种更适应某种环境。...注:连接查询是SQL查询的核心,连接查询的连接类型选择依据实际需求。如果选择不当,非但不能提高查询效率,反而会带来一些逻辑错误或者性能低下。

    4.6K30

    使用STM32实现一个离线语音控制器

    STM32F407ZGT6(或其他主控板) 海凌科HLK-V20离线语音控制模块 海凌科HLK-V20离线语音控制模块 电容式驻极体话筒(咪头) 杜邦线,LED灯,实验用到3个LED灯,面包板(非必备...Payload 为唤醒与命令词对应的 action 标识, 唤醒对应的 action 为 wakeup_uni, 命令词对应的 action 详见后面介绍,对于我们来说,最重要的是解析出来action数据,根据...串口配置:   串口1配置,主要配置下图红框中的几项即可,开启接收中断,中断优先级可以选择默认的即可,波特率115200。   ...串口2配置,基本同串口1配置,也是主要配置下图红框中的几项即可,开启接收中断,中断优先级可以选择默认的即可,波特率115200。...数据接收完成之后,先对数据头进行解析,判断数据是不是我们需要的包,数据头正确之后,在对action字段进行解析,解析出我们需要的内容,也即是控制内容。

    2.4K21
    领券