关于 teradata 的几个问题 ,对这个几个问题不太清晰 请详细解答,万分感谢

0
Q9:
现有PPL表定义如下
CREATE TABLE SslesHistory_Storel(
Product_Code CHAR(8),
Store_Number INTEGER,
Transaction_Date DATE,
Quantity_Sold INTEGER,
Notes CHAR(50)
)
PRIMARY INDEX(Product_Code,Store_Number,Transaction_Date)
PARTITION BY RANGE_N(Transaction_Date BETEEN DATE '2009-01-01'AND DATE '2011-12-31' EACH INTERVAL '1' MONTH_NO RANGE UNKNOWN);


请简述,1.该表共有几个分区?
2.若将Transaction_Date 为2013年9月10月的记录对该表进行INSERT操作会发生怎样的情况?数据会落在那个分区?
3.若将Transaction_Date 为NULL值的记录对该表进行INSERT操作会发生怎样的情况?数据会落在那个分区?



Q6:先有trans 表的表结构定义如下:
CREATE TABLE trans
( trans_id INTEGER NOT NULL,
unit_price DECIMAL(10,2),
t_time TIMESTAMP(6) NOT NULL
)
PRIMARY INDEX (trans_id);

运行一下INSERT 语句:
INSERT INTO trans VALUES (45912,12.99,NULL,CURRENT_TIMESTAMP);
请写出执行一下SQL所返回的结果
SELECT COALESCE (unit_price 0)*qnty
FROM trans
WHERE trans_id=45912
AND unit_price IS NOT NULL;

------------------------------------------------------------------------------
Q11:数据库中存在一张协议余额历史表(DBDATA,AC_BAL_H)定义如下,筛选出20131231当天的账户玉儿情况,结果按账户惊醒升序排列
CREATE MULTISET TABLE DBDATA,AC_BAL_H,NO FALLBACK
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM=DEFAULT
(Ae_id VARCHAR(50) CJARACTER SET LATIN CASESPECIFIC TITLE ‘协议号’NOT NULL,
Ae_Mdn VARCHAR(50) CHARACTER SET LATIN CASESPECIFIC TITLE '协议修饰符' NOT NULL,
Product_W CHAR(50) CHARACTER SET LATIN CASESPECIFIC TITLE '产品编号' NOT NULL,
St_D DATE FORMAT 'YYYYMMDD'TITLE '开始日期'NOT NULL DEFAULT DATE '1900-01-01',
Cut_Cd CHAR (3) CHARACTER SET LATIN CASESPECIFIC TITLE '币种' NOT NULL,
Orie_Cur_Bal DECIMAL(18,4)TITLE‘原本余额’NOT NULL,
CNY_Cur_Bal DECIMAL(18,4) TITLE '折人民币余额'NOT NULL,
End_Dt FORMAT 'YYYYMMDD'TITLE '结束日期'NOT NULL DEFAULT DATE '3000-12-31'
)PRIMARY INDEX (Ae_id)
----------------------------------------------------------------------------------------------------
Q12:在上面的协议余额历史表中,某个协议?(协议号=‘1110000026060500’)记录情况如下,请写出该协议号2013年12月月均额的计算方法
协议号 协议修饰符 产品编号 开始日期 币种 原币金额 结束日期
10000000011 T01010101 20131128 CNY 725.6638 20131210
10000000011 T01010101 20131210 CNY 10.1259 20131215
10000000011 T01010101 20131215 CNY 587.9354 20131231

------------------------------------------------------------------------------
Q13:我们首先设计一张表(给出建表语句)存储客户的AUM信息,然后给出计算用的SQL,分别用于计算客户的月日均AUM余额和客户在产品组编号=‘02001’下的半年日均AUM余额。
以上计算基本客户主题集市中的CO1_RT_CUST_SUM_BAL_H,该表展示如下,其中Bal_Index_Type_Cd=2表示类型“月日均”
CREATE MULTISET TABLE crmdata,Cor_RT_CUST_AUM_BAL_H,NO FALLBACK
NO BEFORE JOURNAL,
NO AFTER JOURNAL,
CHECKSUM=DEFAULT
( Party_id CHAR(19)CHARACTER SET LATIN CASESPECIFIC TITLE '当事人编号'NOT NULL,
ProdGrp_id CHAR(50) CHARACTER SET LATIN CASESPECIFIC TITLE '产品组编号'NOT NULL,
Party_AUM_Belong_Org_Id CHAR(12) CHARACTER SET LATIN CASESPECIFIC TITLE '当事人AUM归属机构编号' NOT NULL,
Bal_Index_Type_Cd SMALLINT TITLE '余额指标类型代码'NOT NULL,
ST_DT DATE FORMAT 'YYYYMMDD'TITLE '开始日期'NOT NULL DEFAULT DATE '1900-01-01',
CNY_Cur_Bal DECIMAL (18,4) TITLE '折人民币余额'COMPRESS 0,0000,
End_Dt DATE FORMAT 'YYYYMMDD' TITLE '结束日期' NOT NULL DEFAULT DATE '3000-12-31',
Etl_Job CHAR(50) CHARACTER SET LATIN CASESPECIFIC TITLE '余额作业代码'NOT NULL COMPRESS 'CO1_RT_CUST_AUM_BAL_H

) PRIMARY INDEX (Party_id)

-------------------------------------------------------------------------------------------------
Q14:
TRANSACTIONS 表的表结构定义为:
CREATE SET TABLE TRANSACTIONS FALLBACK
( ORDER_ID INTEGER,
ORDER_DT DATE,
STORE_ID INTEGER,
PROD_ID INTEGER,
PROD_CATEGORY CHAR(5),
SALESPERSON_ID INTEGER,
CUST_ADDRESS CHAR (500)

)
PRIMARY INDEX(PROD_CATEGORY)
PARTITON BY RANGE (ORDER_DT BETEEN DATE '2005-01-01' AND DATE '2012-12-31'EACH INTERVAL '1'MONTH);
表中共有8亿条记录,具体数据情况如下:
300 store
50 product
8 product categories
500 sales person
请对 TRANSACTIONS 的表结构进行优化,提升其数据加载和查询性能。
同事减少其占用的空间
--------------------------------------------------------
Q15
系统管理员在系统监控时发现下面这句查询运行得非常慢
SELECT
B.ORG_ID,
B.ORG_NAME,
SUM(A.CUR_BAL_SUM) AS TOTAL_BAL
FORM ECRVIEW.BAC_ACCT_BAL_SUM A
INSERT JOIN PVIEW.T04_ORG B
ON OPEN_ACCT_ORG_ID=B.ORG_ID
WHERE A.DATA_DT =DATE '2012-05-23'
GROUP BY 1.2;
经过调研,发现ECRVIEW BAC_ACCT_BAL_SUM 的记录数虽然在亿级,但却含有50个ORG_ID 的数据,而T04_ORG是一张机构表,记录数为2000条。请根据以上对这段SQL进行优化 。
已邀请:

要回复问题请先登录注册