我希望在SAS中编写一个直通查询,但我不想返回结果,我希望将结果存储在Teradata中。
在Teradata中,我可以做到
create table db.table2 as (select
column1,
column2,
count(*) as cnt
from
db.table1
group by
column1, column2
having cnt = 1) with data primary index(column1, column2)
)
在SAS中,只有将一些结果返回
我在SAS DI Studio中创建一个ETL作业,将Teradata表读入SAS,然后在其上应用用户编写的代码,然后使用Teradata table Loader再次将SAS工作表加载到Teradata中。
将大型teradata表(50Cr或更多记录)读取到SAS工作区的最佳方式是什么?我目前正在使用以下基本SAS代码来创建工作表:
data work.out_table;
set db.in_table;
<sas-statements>;
run;
我有包含id列的sas表,并且我正在查询teradata sql,条件是sql表与sas表具有相同的id。我使用下面的代码: libname ss"dir";
proc sql;
connect to teradata(server);
crreate table ss.new as select * from connection to teradata(
select some from new_db where id in (select id from ss.table)); 代码无法识别ss库。如何将列作为sql参数传递?
需要你的帮助和指导。请见下文
*rsubmit;proc sql;
connect to teradata(user=&user_id. password=&user_pwd.);
create table mylib.DWH_table as select * from connection to teradata(
select distinct nm from DWH_table
);
quit;*endrsubmit;
*rsubmit;
DATA mylib.out_sas1;
set mylib.DWH_table;
if prxmatch (
我正在使用SAS9.4从Teradata表中提取数据,并且我有以下错误
Teradata row not delivered (trget): The format or
data contains a bad character
Proc sql;
Connect to Teradata(user=......)
Create table table1 as
Select * from connection to Teradata
(Select
Text1,
Text2
From TeraTable
W
易失性表非常好,在某种程度上可以与sql server中临时表(我的背景)相媲美。有没有办法检查易失性表是否已经存在?这段代码在第一次运行时不会工作:
DROP TABLE SomeVolatileTable;
CREATE VOLATILE TABLE SomeVolatileTable AS
(
SELECT
TOP 10 *
FROM SomeSourceTable
) WITH DATA ON COMMIT PRESERVE ROWS;
在sql server中,您可以检查是否存在临时表:
IF OBJECT_ID('tempdb..#Som
我有一个SAS宏,当给定不同的参数时,它会创建几个表。看起来是这样的:
%macro create_tables(key, value);
data WORK.TABLE_&key.:
set WORK.MAIN_TABLE;
where col = &value.;
col_&key. = 1;
drop col;
%mend create_tables;
键参数/宏变量被注入表名。我用不同的键和值多次调用这个宏。
我想把这段代码转换成Teradata语法。我可以为每个键和值创建多个表,但是我有30+键和值。在T
这个sql server tsql在teradata中有等效的值吗:
IF OBJECT_ID('tempdb..#SomeTempTable') IS NOT NULL DROP TABLE #SomeTempTable;
CREATE TABLE #SomeTempTable (Bla NVARCHAR(255));
INSERT INTO #SomeTempTable
SELECT N'a'
UNION ALL
SELECT N'B'
我正在尝试访问我在Teradata之外创建的用于查询运行的工作空间中的SAS表。现在它给了我一个错误。我的问题是如何访问表,而不是在通道内的teradata中。
proc sql;
connect to teradata (user="&user_id.@LDAP" password="&TERADATA_PASS" server='ABC'
connection=global database="GTY");
select * from connection to teradata(
s
我正在使用SAS在Teradata环境中拉取数据。我正在计算Teradata表中的行数,但希望输出采用逗号格式(即1,000,000)。我可以使用下面的代码将值显示为逗号,但是当我尝试在SAS中添加列时,我不能,因为输出是字符格式的。有没有人对如何将数值格式化为逗号,以便在SAS中用于计算目的有任何建议?谢谢。
CAST(Count(*) as (format 'Z,ZZZ,ZZ9')) as char(10)) as rowCount,
有人知道Teradata SQL或SAS SQL中是否有统计模式函数(最频繁的观察)吗?或创建下表的任何替代方案:
我想创建一个包含组变量、distinct count、mean和mode的表,如下所示:
Select a, Count(Distinct(b)), Avg(c), *Mode*(c)
From table
Group By a;
谢谢!
在MySQL用户手册中,它指出以下命令比重命名命令快得多,因为不需要表副本。
ALTER TABLE table1 RENAME TO table2;
但是,我们是否可以快速地将表重命名/覆盖到MYSQL 5.6中的现有表?我尝试了以下命令,它显示了错误“您在synthax中有一个错误;”
ALTER TABLE table1 RENAME OVERWRITE TO table2;
有什么大师能启发我们吗?谢谢。
我正在尝试从SAS导入Teradata表。teradata表具有21个数字的代理键。当我从SAS导入它时,代理键列以2.011E12145的形式导入,但是它的实际值是一个21位数字。我尝试了以下代码
Data chk;
format p_key $30.;
set chk;
p_key=surrogate;
run;
但这不管用吗?
如何避免这种情况,并以数字形式导入?
我在这里做一个连接,基本上是从一个表中的所有列和一个主键和许多其他列(太多而不想键入),然后离开连接第二个表,其中所有列将根据第一个表的主键进行聚合。
简化版如下:
SELECT a.*, COUNT(DISTINCT b.date), SUM(b.spend)
FROM table_1 a
LEFT JOIN table_2.b
ON a.cust_id = b.cust_id
GROUP BY a.* ;
我知道上面的sytax在像Teradata这样的SQL程序中工作,但是在SAS企业指南中,使用PROC SQL时,我得到了以下错误:
ERROR: * used in an illeg