首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

HAWQ取代传统数仓实践(九)——维度表技术之退化维度

在操作型系统,销售订单表是最细节事务表,订单号是订单表的主键,每条订单都可以通过订单号定位,订单的其它属性,客户、产品等,都依赖于订单号。也就是说,订单号把与订单属性有关的表联系起来。...实际上可以将订单号作为一个属性加入到事实表。这样订单维度就没有数据仓库需要的任何数据,此时就可以退化订单维度。需要把退化维度的相关数据迁移到事实表,然后删除退化的维度。        ...需要把订单号加入到销售订单事实表,而不再需要导入订单维度。修改后的函数如下。...end customer_number, case flag when...end customer_state, case flag when '

2.2K50

HAWQ取代传统数仓实践(七)——维度表技术之维度子集

初始装载月份维度数据         本示例,以下语句将生成252条月份数据。..., case flag when 'D' then a_version when 'I'...先用truncate table语句清空表,然后用insert into ... select语句,从客户维度表中选取Pennsylvania州的数据,并插入到pa_customer_dim表。...一旦视图建立,它的结构就是固定的,之后底层表的结构改变,添加字段等,不会反映到视图的结构。如果底层表被删除了,或者表结构改变成一种与视图定义不兼容的形式,视图将变为无效状态,其上的查询将失败。...视图定义可以包含order by和limit子句,例如,如果一个视图定义中指定了limit 5,而查询语句为select * from v limit 10,那么至多会返回5行记录。

1.3K50

HAWQ取代传统数仓实践(十五)——事实表技术之无事实的事实表

通常销售事实表可以回答促销商品的销售情况,可是无法回答的一个重要问题是:处于促销状态但尚未销售的产品包括哪些?销售事实表所记录的仅仅是实际卖出的产品。...假设促销是以一周为持续期,在促销范围事实表,将为每周每个商店促销的产品加载一行,无论产品是否卖出。该事实表能够确保看到被促销定义的键之间的关系,而与其它事件,产品销售无关。        ...因此在定义视图的查询语句中关联了产品维度和日期维度两个表。product_launch_date_dim维度是日期维度表的子集。 从字段定义上看,产品维度表的生效日期明显就是新产品的发布日期。...脚本里的insert语句添加所有产品的第一个版本,即产品的首次发布日期。...end isdelete, case flag when

86570

postgresql 如何处理空值NULL 与 替换的问题

在业务开发,经常会遇到输入的值为NULL 但是实际上我们需要代入默认值的问题,而通常的处理方法是,在字段加入默认值设置,让不输入的情况下,替换NULL值,同时还具备另一个字段类型转换的功能。...1 默认值取代NULL 2 处理程序可选字段的值为空的情况 3 数据转换和类型的转换 下面我们看看如何进行实际的相关事例 事例1 程序在需要两个字段进行计算后,得出结果进行展示,比如买一送一,或买一送二...我们再来看 select first_name || '.' || last_name, case when box1 is not null then box1 when box2 is...那么除了上面的两种使用的情况,COALESCE 还可以针对某些字段的类型进行转换,日期类型转换为文字的需求。...COALESCE可以与其他条件逻辑(CASE)结合使用,这基于特定条件或标准对NULL值进行更复杂的处理。通过利用COALESCE的灵活性并将其与条件逻辑相结合,您可以实现更复杂的数据转换和替换。

1.3K40

SQL 基础-->SELECT 查询

SQL 语句能输入一行或多行 关键字不能整行缩写或分离 子句通常被放置在分开的行上 缩进可提高可读性 在SQL 开发工具,SQL 语句能选择分号结束(;) .当你运行多个SQL 语句的时候,...需要分号 在SQL*Plus, 你要用一个分号结束每个SQL 语句.(;) 三、SQL*PLUS特征: 字符日期左对齐 数字右对对齐 列名默认大写 SQL PLUS 自己的命令不需以分号“;...WHEN的等价用法 SQL> SELECT e.last_name, CASE WHEN e.job_id = j.job_id THEN NULL ELSE e.job_id END AS "Old...的用法 --当COALESCE(exp1,exp2)包含两个表达式时,等价于CASE WHEN exp1 IS NOT NULL THEN exp1 ELSE exp2 END --COALESCE (...expr1, expr2, ..., exprn), for n>=3 --当n >= 3时,等价于 --CASE WHEN expr1 IS NOT NULL THEN expr1 -- ELSE

95020

Day6 | 数据库操作-索引补充、非空表达式、CASE WHEN函数

背景介绍 本篇针对索引进行展开介绍,以及补充对非空表达式和CASE WHEN函数的介绍。 索引 复习一下 ?...非空表达式:COALESCE 非空表达式coalesce(),其作用是返回括号内参数的第一个非空表达式,顺序为括号内从左向右依次类推。若括号内所有参数均为NULL,则返回NULL值。...CASE WHEN查询 case when函数可以有简单函数和搜索函数两种用法,结构大致相同: case column_name when 条件/取值 then 结果1 else 结果2 end case...when函数可以与聚合函数结合使用,在搜索函数when后可以使用and连接多个条件。...搜索查询(用CASE WHEN实现数据透视) ? 今日小练习 练习一:关于索引的选择题 Q1: 下面创建索引的语句正确的是(多选): A.

55830

《SQL Cookbook》 - 第一章 检索数据

朋友推荐了一本书《SQL Cookbook》,翻译过来就是《SQL经典实例》,讲的都是SQL编写层面的案例,例如获得随机数、NULL值判断、求中位数、日期计算等,都是日常工作可能用到的,但是有些知识点可能稍微模糊...在SELECT语句中指定具体的列名,可以确保查询语句不会返回无关的数据。当在整个网络范围内检索数据时,这样做更重要,因为他避免了将时间浪费在检索不需要的数据上。 2....ELSE子句是可选的,若没有他,对于不满足测试条件的行,CASE表达式会返回NULL, select ename, sal, case when sal <= 2000 then 'UNDERPAID...可以使用COALESCE将NULL值改为实际值,该函数会返回参数列表第一个非NULL的值,如果c不为0,返回c,否则返回0, select coalesce(c, 0) from emp; 此处能使用CASE...,但是明显COALESCE函数更加方便、更简洁, select case        when c is not null then c        else 0        end from

83720
领券