其中 select from where 是查询的基本关键字,其余部分关键字的含义如下: distinct:对查询到的结果进行去重。...sql 语句中的 select 语句的结果有多行,但只有一列,即多个数据。...与多行子查询相关的关键字有三个: in:表示在其中,即与多个数据中的一个相等即可。 all:表示全部,即大于/小于/… 多个数据中的全部。 any:表示任意,即大于/小于/… 多个数据中的任意一个。...---- 查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的。...union union 操作符用于取得两个结果集的并集,当使用该操作符时,会自动去掉结果集中的重复行。 将工资大于2500或职位是MANAGER的人找出来。
去重set操作 data.select('columns').distinct().show() 跟py中的set一样,可以distinct()一下去重,同时也可以.count()计算剩余个数 随机抽样...— 2.2 新增数据列 withColumn— withColumn是通过添加或替换与现有列有相同的名字的列,返回一个新的DataFrame result3.withColumn('label', 0)...如何新增一个特别List??...:返回一个不包含重复记录的DataFrame 返回当前DataFrame中不重复的Row记录。...该方法和接下来的dropDuplicates()方法不传入指定字段时的结果相同。
所有的表都是由一个或者多个列组成的。 数据库中的每个列都应该是具有的相同数据类型datatype。数据类型定义了列可以存储哪些数据类型。...它的语句都是由简单的、具有描述性的英文单词组成的 3、SQL虽然简单,但是实际上是一种很强有力的语言,灵活使用去语言元素,可以进行复杂和高级的数据库操作 检索数据 本章中介绍的是如何使用select语句从表中检索一个或者多个数据列...下面关于SQL的语句做几点笔记: 多条SQL语句必须是以分号;结尾;如果是单条不加分号也是可以的,但是最好加上 SQL语句不区分大小写,即:SELECT和select是相同的。...如果我们想只显示部分数据,该如何实现?...数据库中一般存在大量的数据,一般我们只需要检索表中少量的行。只检索所需数据需要指定搜索条件,搜索条件也称之为过滤条件。
# 多行子查询 多行子查询指返回多行数据的子查询 ,使用关键字 in 如何查询和部门10的工作相同的雇员的名字、岗位、工资、部门号、但是不含10自己的。...10的工作相同的雇员的 -- 名字、岗位、工资、部门号、但是不含10部门自己的 /* 1.查询到10号部门有哪些工作 2.把上面查询的结果当做子查询 */ SELECT DISTINCT...any 操作符 -- 请思考:如何显示工资比部门30的其中一个员工的工资高的员工的姓名、工资和部门号 SELECT ename,sal,deptno FROM emp WHERE sal> ANY...-- 多列子查询 -- 请思考如何查询与allen的部门和岗位完全相同的所有雇员(并且不含smith本人) -- (字段1,字段2...)...,把一个子查询当作一个临时表使用 请思考:查找每个部门工资最高的人的详细资料 -- 子查询 练习 -- 请思考:查找每个部门工资高于本部门平均工资的人的资料 -- 这里要用到数据查询的小技巧,把一个子查询当做一个临时表使用
数据仓库的特点是一次写入、多次读取,因此,整体来看,RCFILE相比其余两种格式具有较明显的优势。 13、Hive表关联查询,如何解决数据倾斜的问题?...③ 大表Join大表: 把空值的key变成一个字符串加上随机数,把倾斜的数据分到不同的reduce上,由于null 值关联不上,处理后并不影响最终结果。 ...④ count distinct大量相同特殊值: count distinct 时,将值为空的情况单独处理,如果是计算count distinct,可以不用处理,直接过滤,在最后结果中加1。...17、Group By 默认情况下,Map阶段同一Key数据分发给一个reduce,当一个key数据过大时就倾斜了。...18、Count(Distinct) 去重统计 数据量小的时候无所谓,数据量大的情况下,由于COUNT DISTINCT操作需要用一个Reduce Task来完成,这一个Reduce需要处理的数据量太大
大家好,我是架构君,一个会写代码吟诗的架构师。今天说一说sql语句_ 的三种去重方法,希望能够帮助大家进步!!!...id from userinfo 如结果(2) xiaogang 10 xiaoli 11 xiaohei 12 xiaogang 13 xiaoming 14 此时distinct同时作用了两个字段,...即必须得id与name都相同的才会被排除 2. group by select name from userinfo groub by name 运行上面3行sql的结果如上面distinct中的结果...(2)在使用group by 分组后,在select中可以选择分组字段,和非分组字段的函数值,如 max()、min()、sum、count()等 distinct 和row_number over()...区别: (1)distinct 和 row_number over 都可以实现去重功能,而distinct 作用于当行的时候,其"去重" 是去掉表中字段所有重复的数据,作用于多行的时候是,其"去重"所有字段都相同的数据
一、SELECT语句 使用select查询表数据,必须至少给出两条信息——想选择什么,以及从什么地方选择。 #1.查询单个列: select id from stu; ?...未排序数据 如果没有明确排序查询结果,可能会发现显示输出的数据顺序与原表不同,返回的数据的顺序没有特殊意义,可能是数据被添加到表中的顺序,也可能不是,只要返回相同数目的行就是正常的。...SQL语句和大小写 SQL语句不区分大小写,SELECT与select是相同的。同样,写成Select也没有关系。...SQL语句可以在一行上给出,也可以分成许多行,多数SQL开发人员认为将SQL语句分成多行更容易阅读和调试。...不能部分使用DISTINCT DISTINCT关键字应用于所有列而不仅是前置它的列,除非指定的两个列都不同,否则所有行都将被检索出来。
所有的表都是由一个或者多个列组成的。 数据库中的每个列都应该是具有的相同数据类型datatype。数据类型定义了列可以存储哪些数据类型。...下面关于SQL的语句做几点笔记: 多条SQL语句必须是以分号;结尾;如果是单条不加分号也是可以的,但是最好加上 SQL语句不区分大小写,即:SELECT和select是相同的。...如果我们想只显示部分数据,该如何实现?...数据库中一般存在大量的数据,一般我们只需要检索表中少量的行。只检索所需数据需要指定搜索条件,搜索条件也称之为过滤条件。...: 对所有的行执行计算,指定ALL参数或不指定参数(因为ALL是默认行为) 只包含不同的值,指定DISTINCT参数,表示去重之后再进行计算 笔记:ALL参数不需要指定,是默认行为 SELECT AVG
DISTINCT - 可选-一个DISTINCT子句,指定考虑每个惟一值。 DISTINCT对MAX返回的值没有影响。 它提供了SQL-92兼容性。...MAX返回与表达式相同的数据类型。 描述 MAX聚合函数返回表达式的最大值。 通常,表达式是查询返回的多行中字段的名称(或包含一个或多个字段名称的表达式)。...尝试这样做会产生一个SQLCODE -37错误。 与大多数其他聚合函数不同,ALL和DISTINCT关键字,包括MAX(DISTINCT BY(col2) col1),在MAX中不执行任何操作。...默认情况下,字符串数据类型字段是用SQLUPPER排序规则定义的,它不区分大小写。 当字段定义的排序类型为SQLUPPER时,MAX返回全大写字母的字符串。...对于数值,返回的刻度与表达式刻度相同。 在派生MAX聚合函数值时,数据字段中的NULL值将被忽略。 如果查询没有返回行,或者返回的所有行的数据字段值为NULL,则MAX返回NULL。
SQL 不区分大小写,但一般习惯关键字用大写,列名和表名使用小写。 处理 SQL 语句时,所有空格都会被忽略。一般认为写成多行更容易维护。 选择多个列时,一定要在列名之间加上逗号,但最后一个列名不加。...检索出来的数据默认是不排序,会以其在底层表中出现的顺序显示。 检索数据 SQL 语句是由简单的英语单词构成的。这些单词称为 关键字,每个 SQL 语句都是由一个或多个关键字构成的。...选择单个列 SELECT prod_name FROM Products; 处理 SQL 语句时,所有空格都会被忽略。下面三个例子可以实现同样的效果,一般认为写成多行更容易维护。...比如 SELECT DISTINCT vend_id, prod_id, prod_price 因为指定的两列不完全相同,所以所有的行都会被检索出来。...本节讲授如何使用 SELECT 的 ORDER BY 子句,根据需要排序检索数据。
多表查询 联合查询 联合查询是多表查询的一种方式,在保证多个SELETE语句的查询字段数相同的情况下,合并多个查询的结果 SELECT··· UNION [ALL|DISTINCT] SELECT···...但是在MySQL中,CROSS JOIN与INNER JOIN(或JOIN)语法的功能相同,都可以使用ON设置连接的筛选条件,可以互换使用,但是此处不推荐读者将交叉连接与内连接混用 左外连接 左外连接是外连接查询中的一种...数据源表示一-个符合二维表结构的数据,如数据表。 ? 列子查询 列子查询:子查询返回的结果是一个字段符合条件的所有数据,即一列多行。...因此,读者在选取行子查询的比较运算符时,要根据实际需求慎重选择。 表子查询 表子查询:子查询的返回结果用于FROM数据源,它是一个符合二维表结构的数据,可以是一行一列、一列多行、一行多列或多行多列。...当数据源是子查询时必须为其设置别名,同时也是为了将查询结果作为一个表使用时,可以进行条件判断、分组、排序以及限量等操作。 ?
它将每个不同(唯一)值返回的行数限制为一个任意行。如果未指定DISTINCT子句,则默认情况下显示满足选择条件的所有行。...ALL子句与不指定DEFAULT子句相同;如果指定ALL,SELECT将返回表中满足选择条件的所有行。...DISTINCT从句有两种形式: SELECT DISTINCT:为选择项值的每个唯一组合返回一行。可以指定一个或多个选择项。...但是,嵌入式SQL基于游标的查询可以返回多行数据;在基于游标的查询中,DISTINCT子句只返回唯一值行。 DISTINCT和ORDER BY DISTINCT子句在ORDER BY子句之前应用。...子查询:在子查询中使用DISTINCT子句是合法的,但没有意义,因为子查询返回单个值。 未选择行数据:DISTINCT子句可以与不访问任何表数据的SELECT一起使用。
,指定如何组织检索到的数据; 这些可能包括列名。...但是,对于声明游标并从多行获取数据的嵌入式SQL SELECT,当游标被推进到数据末尾时(SQLCODE=100),操作就完成了; 此时,%ROWCOUNT被设置为选中的行总数。...INSERT语句可以使用SELECT将多行数据值插入到表中,从另一个表中选择数据。...在SQL中,对于任何引用表数据的SELECT,都需要一个带有有效表引用的FROM子句。 对于不访问表数据的SELECT, FROM子句是可选的。...如果指定此关键字,则查询将以READ UNCOMMITTED模式检索数据,而不管当前事务的隔离模式如何。 %NORUNTIME -运行时计划选择(RTPC)优化没有使用。
我记得有次一个同学提问,问他如果报考计算机三级的话,建议报考哪一门?(当时计算机三级一共有5个种类)。那个老师就说建议报考三级数据库技术,因为数据库技术最有前景。...我现在是相当的佩服那个老师,他自己从事的Android开发,让学生学数据库。那应该算是我第一次接触数据库这种东西,从此对它念念不忘(论一个老师对学生的影响力!)...;)结尾 SQL不区分关键字的大小写,但是约定俗成的写法是:关键字大写、表名的首字母大写、其余(列名等)小写 字符串和日期常数需要使用单引号(’)括起来 数字常数无需加注单引号 SQL语句的单词之间需要使用半角空格或换行符来进行分割...WHERE语句来选择记录 SQL常用规则2 SQL语句可以使用AS关键字为列设定别名,设定汉字别名时需要使用双引号(’’)括起来 在SELECT语句中可以使用DISTINCT来删除重复行 WHERE子句要紧跟在...FROM子句之后 SQL语句的注释分为单行注释和多行注释,单行注释书写在“—”之后,多行注释书写在“/”和“/”之间 SELECT 子句中可以使用常数或者表达式 字符串类型的数据原则上按照字典顺序进行排列
回顾基本查询 回顾一下前面所学的基本查询,通过一些案例来练习回顾: 查询工资高于500或岗位为MANAGER的雇员,同时还要满足他们的姓名首字母为大写的J select * from emp where...返回多行记录的子查询 in关键字;查询和10号部门的工作岗位相同的雇员的名字,岗位,工资,部门号,但是不包含10自己的 select ename,job,sal,deptno from emp where...sal from emp where deptno=30); 多列子查询 单行子查询是指子查询只返回单列,单行数据;多行子查询是指返回单列多行数据,都是针对单列而言的,而多列子查询则是指查询返回多个列数据的子查询语句...这里要用到数据查询的技巧,把一个子查询当做一个临时表使用。...当使用该操作符时,不会去掉结果集中的重复行。
这两个函数看起来几乎相同,唯一的区别在于它们如何处理表中可能存在的空行。你将在本节后面学习到有关可选的空行的知识,现在让我们专注于这两个函数的功能。...也就是说,VALUES函数将空行视为有效行,并将其显示出来,而DISTINCT函数不返回空行。...图14 当VALUES函数返回一行时,我们可以使用它作为标量值,就像在Brand Name度量值中一样 Brand Name度量值使用COUNTROWS函数检查产品表的品牌列是否只选择了一个值。...图15 如果Brand Name列有多行,则SELECTEDVALUE函数会返回默认值 如果不返回“Multiple brands”之类的消息,而是希望列出所有品牌,那么该如何修改公式?...例如,图18显示了使用切片器选择某些类别时的情况。 图18 使用ALL函数,百分比仍然是基于总销售额计算的 矩阵中的一些行因为筛选器的作用消失了,但是其余行显示的值没有变化。
DISTINCT - 可选-指定考虑每个唯一值。DISTINCT对MIN返回的值没有影响。它是为SQL-92兼容性提供的。 expression - 任何有效的表达式。...MIN返回与表达式相同的数据类型。 描述 MIN聚合函数返回表达式的最小值(最小值)。通常,表达式是查询返回的多行中的字段名称(或包含一个或多个字段名称的表达式)。...与大多数其他聚合函数不同,ALL和DISTINCT关键字(包括MIN(DISTINCT BY(Col2)col1))在MIN中不执行任何操作。它们是为了与SQL-92兼容而提供的。...默认情况下,字符串数据类型字段使用SQLUPPER排序规则定义,该排序规则不区分大小写。 当字段定义的排序规则类型为SQLUPPER时,MIN将返回全部大写字母的字符串。...但是,因为比较是使用大写排序执行的,所以name=min(Name)子句选择名称值为'Aaron', 'AARON', and 'aaron'的行。 对于数值,返回的小数位数与表达式小数位数相同。
本文给大家总结如何让SQL起飞(优化) 一、SQL写法优化 在SQL中,很多时候不同的SQL代码能够得出相同结果。...1.1 子查询用EXISTS代替IN 当IN的参数是子查询时,数据库首先会执行子查询,然后将结果存储在一张临时的工作表里(内联视图),然后扫描整个视图。很多情况下这种做法都非常耗费资源。...1.3 用EXISTS代替DISTINCT 为了排除重复数据,我们可能会使用DISTINCT关键字。如1.2中所说,默认情况下,它也会进行暗中排序。...这里用Items表和SalesHistory表举例: 图片 我们思考一下如何从上面的商品表Items中找出同时存在于销售记录表SalesHistory中的商品。简而言之,就是找出有销售记录的商品。...= NOT 这个是跟具体数据库的优化器有关,如果优化器觉得即使走了索引,还是需要扫描很多很多行的话,他可以选择直接不走索引。平时我们用!=、、not in的时候,要注意一下。
不论是前端工程师,还是后端算法工程师,都一定会和数据打交道,都需要了解如何又快又准确地提取自己想要的数据。更别提数据分析师了,他们的工作就是和数据打交道,整理不同的报告,以便指导业务决策。...多行注释:/* 注释文字 */ # 2.4 命名规则(暂时了解) 数据库、表名不得超过 30 个字符,变量名限制为 29 个 必须只能包含 A–Z, a–z, 0–9, _共 63 个字符 数据库名、...假如数据类型在一个表里是整数,那在另一个表里可就别变成字符型了 举例: #以下两句是一样的,不区分大小写 show databases; SHOW DATABASES; #创建表格 #create table...选择特定的列: SELECT department_id, location_id FROM departments; MySQL 中的 SQL 语句是不区分大小写的,因此 SELECT 和 select...的作用是相同的,但是,许多开发人员习惯将关键字大写、数据列和表名小写,读者也应该养成一个良好的编程习惯,这样写出来的代码更容易阅读和维护。
数据仓库的特点是一次写入、多次读取,因此,整体来看,RCFILE相比其余两种格式具有较明显的优势。 13、Hive表关联查询,如何解决数据倾斜的问题?...③ 大表Join大表:把空值的key变成一个字符串加上随机数,把倾斜的数据分到不同的reduce上,由于null 值关联不上,处理后并不影响最终结果。 ...④ count distinct大量相同特殊值:count distinct 时,将值为空的情况单独处理,如果是计算count distinct,可以不用处理,直接过滤,在最后结果中加1。...17、Group By 默认情况下,Map阶段同一Key数据分发给一个reduce,当一个key数据过大时就倾斜了。...18、Count(Distinct) 去重统计 数据量小的时候无所谓,数据量大的情况下,由于COUNT DISTINCT操作需要用一个Reduce Task来完成,这一个Reduce需要处理的数据量太大
领取专属 10元无门槛券
手把手带您无忧上云