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

PostgreSQL基础知识整理

在每个表上的DELETE(删除)具有相同的效果,但是,因为它没有实际扫描的表,它的速度快。...VALUES子句或查询的值都与显式或隐式的列列表从左到右。 如果要添加表中的所有列的值,可能不需要在SQL查询中指定列(次)名称。但要确保表中是在相同的顺序的列值的顺序。...UNION ALL运算符语句,则包括重复行的结果。使用UNION,每个SELECT选择的列数必须具有相同的,相同数目的列表达式相同的数据类型,并让它们在相同的顺序,但它们不必是相同的长度。...子查询只能有一个在SELECT子句中的列,除非多列在主查询的查询来比较其选定的列。 ORDER BY不能使用在子查询中,虽然主查询就可以使用ORDER BY。...这些表达式必须都可以转换成一个普通的数据类型,它将会是结果类型。列表中的NULL值将被忽略。只有所有表达式的结果都是 NULL 的时候,结果才会是 NULL。

3.6K10

SQL系列(一)快速掌握Hive查询的重难点

该系列的核心是学完即用,因此后续的所有分享都是建立在具有一定的数分基础上的。 建议:对于初学者或想转行数据分析的同学,可以先收藏,等具备一定数分基础后再跟随学习效果更佳。...横向求最小值,计算多列的最值 least(1,2,3) -- 1 聚合函数 聚合函数除了常规的统计外,还可以按照条件聚合,这也是业务最常见的使用场景。...尤其是正则替换和正则提取,在日常业务中使用频率极高,所以掌握一定的正则知识是必要的。限于篇赋,这两点在后续的SQL实战中再做详细介绍。...列转多行 表生成函数 Tkey,Tvalue explode(MAP m) 将一列的map各键-值转为多行 表生成函数 int,T posexplode(ARRAYa) 将一列的数组各元素位置...因此在实际操作中,在做group 强化之前,应将明细数据中每个维度的NULL值进行替换为'未知',用于标记维度本身的取值;group 强化之后,应将每个维度的NULL值再进行替换为'全部',用以标记group

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

    Oracle中的NVL函数「建议收藏」

    在介绍这个之前你必须明白什么是oracle中的空值null 1.NVL函数 NVL函数的格式如下:NVL(expr1,expr2) 含义是:如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空...或者有一个这样的需求,用户列表,但是每个用户都有一个职位,但是职位在不同部门,需要把用户的职位列表查询到一列中 select * from ( select SYSUSER.id...SYSUSER.sysid, nvl(userjd.mc, nvl(useryy.mc, usergys.mc)) sysmc //这里去重三个表的职业合并到一列中...使用的是oracle中HR schema,如果HR处于锁定,请启用 这里的作用是显示出那些换过工作的人员原工作,现工作。...COALESCE(expression1,…n) 与此 CASE 函数等价: 这个函数实际上是NVL的循环使用,在此就不举例子了。

    4.3K30

    PostgreSQL 不在使用tigger或rule来模拟 SSQLSERVER timestamp 行变化版本管理

    每种数据库都有自己的特色,SQL SERVER 也有自己的招数,timestamp字段类型会针对于行中任何列值的变化,而改变,之前也写过PG 怎么来模拟这个功能 https://blog.csdn.net...我们提供 actor 表作为源对象 然后我们将数据灌入到 actor_copy 表中,然后查看表,可以看到多了一列并且这一列实际上是 first_name 和 last_name 的组合。...应用场景有很多,举例客户点单,然后客户在完成订单后,会改变这个订单所在行的某列,或某几列的信息 之前类似SQL SERVER 的TimeSTAMP 就可以完成这个功能,任何一列的值变化,都会自动触发timestamp...此时应用程序就很简单的继续使用类似SQL SERVER 的功能, 1 在处理事务前,通过查询将修改的条件行中的sqlserver_timestamp 行的值记录到缓存中 2 执行事务 3 查询film...表中的 sqlserver_timestamp 行的值,与之前的值是否有变化 变化就是证明这两个字段的值一个或两个都变化了,否则就是没有改变。

    72120

    HAWQ取代传统数仓实践(六)——增加列

    销售订单表在销售金额列后面增加了销售数量列。注意after关键字,这是MySQL对标准SQL的扩展,HAWQ目前还不支持这种扩展,只能把新增列加到已有列的后面。在关系理论中,列是没有顺序的。 2....修改tds模式中的表结构         使用下面的SQL语句修改tds模式中的表结构。...在源系统库中,客户地址和送货地址列都是允许为空的,这样的设计是出于灵活性和容错性的考虑。我们以送货地址为例进行讨论。...基于以上分析,这里使用HAWQ的coalesce函数处理NULL值(类似于Oracle的NVL或SQL Server的ISNULL)将NULL值比较转化为标量值比较。...图3         可以看到,由于源库中为送货地址增加了缺省值,每条记录都新增了一个版本。老的过期记录的送货地址为空。9号客户是新加的,具有送货地址。

    2.4K80

    常用的数据库函数_数据库中自定义函数

    1.COALESCE(); 很多人知道ISNULL函数,但是很少人知道Coalesce函数,人们会无意中使用到Coalesce函数,并且发现它比ISNULL更加强大,其实到目前为止,这个函数的确非常有用...返回其参数中第一个非空表达式 语法: COALESCE ( expression [ ,...n ] ) 如果所有参数均为 NULL,则 COALESCE 返回 NULL。...包含具有非空参数的 ISNULL 的表达式将视为 NOT NULL,而包含具有非空参数的 COALESCE 的表达式将视为 NULL 下面我们来看一个例子: expression [ ,...n ]...包含具有非空参数的 ISNULL 的表达式将视为 NOT NULL,而包含具有非空参数的 COALESCE 的表达式将视为 NULL 下面我们来看一个例子: SELECT COALESCE(NULL...) 参数 expression 字符串、二进制字符串、文本、图像、列或包含列的表达式。

    96330

    VLOOKUP很难理解?或许你就差这一个神器

    参数名称 说明 lookup_value (必需)要查找的值。要查找的值必须列于在 table_array 参数中指定的单元格区域的第一列中。...这是未指定值时的默认方法。例如,=VLOOKUP (90,A1:B100,2,TRUE)。完全匹配 - 0/FALSE 搜索第一列中的确切值。...如果数组具有多行和多列,并且row_num 或 column_num ,INDEX 返回数组中整个行或列的数组。 row_num 必需,除非column_num 存在。...利用数据验证设置下拉选项 除了使用数值控制钮选择目标查找值,还可以通过设置下拉选框选择目标查找值。...以区号为例,在【数据】--【数据验证】下【数据验证】--【设置】中【允许值】为序列,来源是区号所在区域I14:I19,确定即可。 在运用VLOOKUP函数,查找区号所对应的省份。

    8.1K60

    Presto统计信息

    以Hive连接器为例: 非分区表只有一种table layout,代表表中的所有数据 分区表具有一系列table layout。每组要扫描的分区代表一个table layout。...Available Statistics Presto提供以下统计信息: 对于表: 行数:table layout中的总行数 对于表中的每一列: 数据大小:需要读取的数据大小 空值分数:空值的分数 不重复值计数...:不重复值的数量 低值:列中的最小值 高值:列中的最大值 可用于特定查询的统计信息集取决于所使用的连接器,并且还可能因表甚至table layout而异。...rows是指执行期间每个计划节点输出的预期行数。行数后括号中的值是指每个计划节点输出的数据的预期大小(以字节为单位)。其他参数指示计划节点的执行所使用的CPU,内存和网络的估计数量。...片段类型指定Presto节点如何执行片段以及片段之间的数据分配方式. SINGLE 片段在单个节点上执行. HASH 片段在固定数量的节点上执行,使用哈希函数分配输入数据.

    2.6K30

    RPA与Excel(DataTable)

    以“结束”模式移动或滚动 打开或关闭“结束”模式:End 在一行或一列内以数据块为单位移动:End+箭头键 移动到工作表的最后一个单元格,在数据中所占用的最右列的最下一行中:End+Home 移动到当前行中最右边的非空单元格...:向上键或向下键 向左或向右滚动一列:向左键或向右键 6.选定单元格、行和列以及对象 选定整列:Ctrl+空格键 选定整行:Shift+空格键 选定整张工作表:Ctrl+A 在选定了多个单元格的情况下,...:Ctrl+\ 在选定的列中,选取与活动单元格中的值不匹配的单元格:Ctrl+Shift+| 选取由选定区域中的公式直接引用的所有单元格:Ctrl+[(左方括号) 选取由选定区域中的公式直接或间接引用的所有单元格...Shift+箭头键 将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格:Ctrl+Shift+箭头键 将选定区域扩展到行首:Shift+Home 将选定区域扩展到工作表的开始处:Ctrl+...将选定区域扩展到与活动单元格在同一列或同一行的最后一个非空单元格:End+Shift+箭头键 将选定区域扩展到工作表的最后一个使用的单元格(右下角):End+Shift+Home 将选定区域扩展到当前行中的最后一个单元格

    5.8K20

    探索SQL Server元数据(二)

    在2012及其以后版本,可以使用一个新的表值函数极大地简化上述查询,并可以避免各种连接。在下面的查询中,我们将查找sys.triggers 视图 中的列。...为了查出任何列的信息,你可以使用稍微修改的版本,只需要改变代码中的字符串'sys.triggers'即可,如下: Declare @TheParamater nvarchar(255) Select...在我们使用sys.triggers的信息之前,需要来重复一遍,所有的数据库对象都存在于sys.objects中,在SQL Server 中的对象包括以下:聚合的CLR函数,check 约束,SQL标量函数...(see the first column, second line down) 从这个输出中我们可以看到,除了在定义它的过程本身之外,还有触发器,只有dbo.uspLogError正在执行uspPrintError...(见第一列,第二行往下) 列出服务器级触发器及其定义 我们可以通过系统视图了解它们吗?嗯,是的。

    1.6K20

    mysql分区、分表学习

    LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。...HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。...KEY分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。...那么与在西区音像店工作雇员相关的所有记录(行)可以使用查询“ALTER TABLE employees DROP PARTITION pWest;”来进行删除,它与具有同样作用的DELETE (删除)查询...1.水平分表:根据一列或多列数据的值把数据行放到两个独立的表中。

    2.6K20

    如何管理Spark的分区

    ] = [num: int] 我们可以验证上述操作是否创建了只有两个分区的新DataFrame:可以看出,分区数变为了2 scala> numsDF2.rdd.partitions.size res13...上述每个分区的数据如下: part-00000: 1, 2, 3, 4, 5 part-00001: 6, 7, 8, 9, 10 对比减少分区之前的数据存储,可以看出:在减少分区时,并没有对所有数据进行了移动...这也印证了源码中说的,repartition操作会将所有数据进行Shuffle,并且将数据均匀地分布在不同的分区上,并不是像coalesce方法一样,会尽量减少数据的移动。..., partitionExprs: _*) } 解释 返回一个按照指定分区列的新的DataSet,具体的分区数量有参数spark.sql.shuffle.partitions默认指定,该默认值为200...通常情况下,不会只将数据写入到单个文件中,因为这样效率很低,写入速度很慢,在数据量比较大的情况,很可能会出现写入错误的情况。所以,只有当DataFrame很小时,我们才会考虑将其写入到单个文件中。

    2K10

    探索SQL Server元数据(一)

    之前看到MSDN上有人警告说不要使用INFORMATION_SCHEMA视图来确认对象架构,我理解是因为SQL Server允许在不同的架构中有相同的表名字,因此当只有表名称的时候会有混淆。...所以我认为尽管放心使用就好了。 兼容性视图 兼容性视图是维护元数据的视图,在SQL Server 2005之前是有系统表支持的,并且只向后兼容。...只在2005之后的版本支持对于某些系统表的查询,例如分区表等,只有部分元数据或者特性是对用户可见的。...比较有用的查询实例 下面我会展示的例子都已经在2008和2012 两个版本中测试。当然只用到了各自版本的最后一个版本更新后的数据库。 下图中展示了所有继承sys.objects列的视图。...如果我们需要特定于特定类型对象的信息,比如主键是否具有系统生成的名称,那么您就必须为该特定类型的对象使用视图。

    58420

    探索SQL Server元数据(三):索引元数据

    背景 在第一篇中我介绍了如何访问元数据,元数据为什么在数据库里面,以及如何使用元数据。介绍了如何查出各种数据库对象的在数据库里面的名字。...简而言之,任何频繁使用的数据库系统中的索引都需要定期维护和验证,而目录视图是完成这些工作的最直接的方式之一。 都有哪些索引可以查到?...每个表在sys中都有一行。索引值为0或1的索引。...如果您对某些表具有大量索引感到怀疑,那么可以使用下面查询,该查询告诉您具有超过4个索引和索引计数超过列计数一半的表。它是一种任意选择具有大量索引的表的方法。...在第一个查询中,返回的object_ID是定义索引的表的ID。 这里的问题是关系是复杂的。约束可以包含几个列,也可以由索引强制。索引可以包含几个列,但是顺序很重要。

    1.1K10

    excel数据排序的常用方式

    今天跟大家分享几种常用的数据排序方式! ▼ 在excel中整理数据、作图或者其他数据汇总操作,常会遇到对某一列数据排序的需求。...●●●●● 函数排序 rank() rank函数是excel中的专用排序函数,可以给出某一单元格数值在某一列中的名次。 ?...因而想要对D列数据进行排名,需要一列顺序排列的名次数据作为辅助数据(H列)。 有没有可以摆脱辅助列直接使用一个函数语句结果排序问题呢?...以下就是是否扩展选定区域对排序结果造成的不同影响,默然是扩展当前列,这样对某一列排序的同时,其他列会同步变动,而以当前选定区域排序则只对当前选定的列排序,其他列则不变动。 ?...一般情况下,我们都会让数据同步变动,否则只有一列变动,则横向的数据记录就会错乱。 智能表格: 这种排序方法也很简单,只需要把原数据区域套用表格就可以轻松完成排序。

    1.8K110

    SQL内置函数手册

    numeric_histogram_u(buckets, Value) 对于数值列,分多个桶进行统计。即把Value一列,分到桶中,桶的个数为buckets。...函数格式 在查询中将某一列(字段)或某一个值转换成指定类型。其中,如果某一个值转换失败,将终止整个查询。...cast([key|value] as type) 在查询中将某一列(字段)或某一个值转换成指定类型。如果某一个值转换失败,该值返回NULL,并跳过该值继续处理。...by中提取非agg列:如果使用了group by语法,那么在select时,只能选择select group by 的列原始内容,或者对任意列进行聚合计算,不允许获取非group by列的内容 错误语法...mysql中目前没有full join功能 unnest语法 背景 在复杂的业务场景下,日志数据的某一列可能会是较为复杂的格式,例如数组(array)、对象(map)、JSON等格式。

    3.7K11

    带你学MySQL系列 | 奇怪的null值,我该怎么办?看看我给你的总结!

    不好理解的其实是空值和null,空值相当于一个杯子是真空状态的,什么也没有,null表示的杯子中有空气。 MySQL中,null是未知的,且占用空间的。...在进行count()统计某一列记录数的时候,如果存在null值,会被系统自动忽略掉,但是空值会被统计到其中。 判断null使用的是is null和 is not null,但判断空字符使用的是= ,!...对于已经创建好的表,普通的列将null修改为not null带来的性能提升较小,所以调优时候没有比要注意。 2)出现了null值,我应该怎么办?...第一种方式:直接使用is not null将这些null值过滤掉,但是这样会将其它非缺失值的字段过滤掉,造成数据的浪费。 第二种方式:也是我们推荐的方式,我们使用函数进行缺失值的填充。...ifnull()和coalesce()函数的使用: select id, coalesce(name,'无名氏') name, coalesce(chinese,0) chinese

    38820
    领券