标签: teradata

Teradata 按时间间隔分组

任何人都可以帮助使用 Teradata 吗?

我想创建一个标准的查询

select count(*) from Table where Column = something

但有一个按 5 分钟时间间隔完成的时间段分组,时间列采用“时间”格式

任何的想法?

sql group-by teradata

2
推荐指数
1
解决办法
2926
查看次数

如何在字符串列中搜索五位数字?

我正在尝试做的是确定(使用Teradata SQL)一个人的邮政编码是否意外地被放在地址线上.我查看了各种论坛,我找不到任何类似的问题.

最终,我想写一些类似的东西:

Where address_line_1 like '%[0-9][0-9][0-9][0-9][0-9]%'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

目标数据库是Teradata 13.x.

sql string numeric wildcard teradata

2
推荐指数
1
解决办法
4812
查看次数

SQL UPDATE行号

我有一个表serviceClusters与列标识(1590值).然后我有另一个表serviceClustersNew与列ID,文本和注释.在此表中,我有一些文本和注释的值,ID始终为1.这里是表的示例:

[1,dummy1,hello1;

1,dummy2,hello2;

1,dummy3,hello3;

等等.]

我现在想要列ID中的值是表serviceClusters的连续索引加上当前行号:在我们的例子中,这将是1591,1592和1593.

我试图像这样解决问题:首先我用最大值更新了列ID,然后我尝试添加行号,但这不起作用:

-- Update ID to the maximum value 1590
UPDATE serviceClustersNew 
SET ID = (SELECT MAX(ID) FROM serviceClusters);
-- This command returns the correct values 1591, 1592 and 1593
SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber 
FROM serviceClustersNew
-- But I'm not able to update the table with this command
UPDATE serviceClustersNew 
SET ID = (SELECT ID+ROW_NUMBER() OVER (ORDER BY Text_ID) AS RowNumber FROM
serviceClustersNew)
Run Code Online (Sandbox Code Playgroud)

通过发送最后一个命令,我收到错误"语法错误:子查询中不允许有序分析函数.".你有什么建议吗,我怎么解决这个问题?我知道我可以使用易失性表或添加列来实现它,但有没有办法不创建新表/更改当前表?

sql numbers teradata

2
推荐指数
1
解决办法
1万
查看次数

CASE WHEN in WHERE 语句

我对 SQL 非常陌生,并且在使用 Where 语句时遇到了问题。我正在尝试查看昨天和一周后的支票,除非今天(今天是查询运行的那一天)是星期一,否则我想查看星期五和星期五之前。错误消息是“期望在‘Check_date’和‘=’之间有一些东西。

WHERE
    CASE WHEN DAYOFWEEK(date) = 2 
        THEN (a.check_date = DATE - 3 OR a.check_date = DATE - 10)
        ELSE (a.check_date = DATE - 1 OR a.check_date = DATE - 8) END
Run Code Online (Sandbox Code Playgroud)

sql teradata sql-server-2008

2
推荐指数
1
解决办法
2万
查看次数

如何在teradata中执行多个查询?

例如查询: create table ; select xxx ; delete ;

如何在一个会话中执行它?

我看到了一个关于 mysql的类似问题的答案。诀窍是开启allow multiple queries

String dbUrl = "jdbc:mysql:///test?allowMultiQueries=true";
Run Code Online (Sandbox Code Playgroud)

特别是对于teradata,解决方案是什么?

我试过

String dbUrl = "jdbc:odbc:dsn?allowMultiQueries=true";
Run Code Online (Sandbox Code Playgroud)

它工作不正常?

java sql teradata

2
推荐指数
1
解决办法
4175
查看次数

Teradata regexp_replace消除特定的特殊字符

我导入了一个包含电子邮件地址的文件(email_source).我需要使用此字段将此表连接到另一个表,但它在电子邮件地址之前和之后包含逗号(,)和双引号(")(例如"johnsmith@gmail.com",").我想用空格替换所有逗号和双引号.

teradata中的正确语法是什么?

regex teradata regexp-replace

2
推荐指数
2
解决办法
2万
查看次数

Teradata 使用 SQL 代码获取周数

我希望从 teradata 中的日期获取周数我可以看到有使用 Sys Calendar Table 的解决方案,但我想使用代码来获取周数

例如,第 28 周是 7 月 6 日至 12 日(含)

我发现这段代码在你输入 DATE 而不是 cdate 时可以正常工作

SELECT 
((cdate - ((EXTRACT(YEAR FROM cdate) - 1900) * 10000 + 0101 (DATE))) -     ((cdate - DATE '0001-01-07') MOD 7)  + 13) / 7
Run Code Online (Sandbox Code Playgroud)

我的日期格式为 MM/DD/YY,当我运行它时,我收到错误消息

SELECT ((06/29/15 - ((EXTRACT(YEAR FROM 06/29/15) - 1900) * 10000 + 0101     (DATE))) - ((06/29/15 - DATE '0001-01-07') MOD 7)  + 13) / 7
Run Code Online (Sandbox Code Playgroud)

“用户无法在 DATE 执行该操作”

任何帮助将不胜感激

sql date teradata week-number

2
推荐指数
1
解决办法
1万
查看次数

原生 PHP 中具有基本授权的 Soap 标头

我需要连接到 TeraData SOAP API,它现在需要使用登录凭据发送授权基本标头。我不知道如何解决这个问题。添加基本​​授权标头时,我在 SoapUI 中获得了访问权限 - 请任何人都可以帮助我直接获取代码:

这是 Header SoapUI 发送的并且响应良好:

POST http://example.com/api/soap/v6 HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
Content-Length: 302
Host: example.com
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)
Authorization: Basic [user&pass-base64-encoded]
Run Code Online (Sandbox Code Playgroud)

这是我尝试设置 SoapClient 的方法:

$namespace =  "http://ecircle.com/developer/ecmapi";
$wsdl = "https://sslh.teradatadmc.com/teradata/api/soap/v6?wsdl";
$client = new SoapClient($wsdl, array("trace" => 1, "exceptions" => 0));
$login = 'xxx';
$password = 'yyy';
$header = new SoapHeader($namespace, 'Authorization: Basic',   
base64_encode("$login:$password"));
$client->__setSoapHeaders($header);
Run Code Online (Sandbox Code Playgroud)

它不被接受,我只是收到一个 HTTP/1.1 401 未经授权的错误

堆栈跟踪向我显示了我发送的标头 - 那里缺少授权部分。

public '__last_request_headers' => string 'POST /api/soap/v6 …
Run Code Online (Sandbox Code Playgroud)

php soap soap-client teradata

2
推荐指数
1
解决办法
9693
查看次数

在Teradata中声明变量

在TSql中,我可以这样定义一个变量:

DECLARE @Threshold AS int;
SET @Threshold = 5;
Run Code Online (Sandbox Code Playgroud)

然后,我可以像这样使用它:

,COALESCE(
    CASE WHEN X >= @Threshold THEN A ELSE NULL END
    ,CASE WHEN Y >= @Threshold THEN B ELSE NULL END
) AS Bla
Run Code Online (Sandbox Code Playgroud)

在TeraData上可能类似

t-sql teradata

2
推荐指数
1
解决办法
1万
查看次数

如何通过比较两个字段来连接表,并考虑性能

这应该很简单但我无法得到它.我需要做一个选择来为某些帐户获取更新的日期值.

我从这里开始,T1:

+----------+---------+
|  date   | account |
+----------+---------+
| 4/1/2018 |       1 |
| 4/1/2018 |       2 |
| 4/1/2018 |       3 |
| 4/1/2018 |       4 |
| 4/1/2018 |       5 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)

然后在T2中更新一些日期:

+----------+---------+
|   date   | account |
+----------+---------+
| 7/1/2018 |       1 |
| 7/1/2018 |       2 |
+----------+---------+
Run Code Online (Sandbox Code Playgroud)

如何将此输出输入T3,仅更新这些帐户?

+----------+---------+
|   date   | account |
+----------+---------+
| 7/1/2018 |       1 |
| 7/1/2018 |       2 |
| 4/1/2018 |       3 |
| 4/1/2018 | …
Run Code Online (Sandbox Code Playgroud)

sql hive join teradata

2
推荐指数
1
解决办法
131
查看次数