标签: netezza

如果该表包含相关数据,则Netezza SQL加入表

我试图基于某些列在指定的时间范围内连接表.我已经尝试了几种方法并且无法解决这个问题.

我从一个简单的查询开始:

SELECT *
FROM admin.mktdmtunit c
WHERE c.unitid IN ('2756')
AND c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss') 
    AND to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')
Run Code Online (Sandbox Code Playgroud)

返回1行.

然后我添加另一个表:

 SELECT *
    FROM admin.mktdmtunit c
    INNER JOIN admin.mktmanualdispatch_all mrd 
    ON c.unitid = mrd.unitid
    where c.unitid in ('2756')
    AND (c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss') 
        and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss')
        OR mrd.effectivetime  between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd           hh:mi:ss') 
            and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd hh:mi:ss'))
Run Code Online (Sandbox Code Playgroud)

返回4行,基于mrd表中4个条目的unitid.但这些都与那个日期无关,所以我不希望看到这些信息.

所以我尝试了这个:

SELECT *
FROM admin.mktdmtunit c
where c.unitid in ('2756')
AND c.calledofftime between to_timestamp('2012-12-05 05:00:01','yyyy-mm-dd hh:mi:ss') 
    and to_timestamp('2012-12-06 05:00:00','yyyy-mm-dd …
Run Code Online (Sandbox Code Playgroud)

sql netezza

5
推荐指数
1
解决办法
8668
查看次数

如果长度不等于使用sql的10位,则添加前导零

我想加入2个表但我的问题是其中一个表有10位数字,另一个表可能有10个或更少的数字.出于这个原因,我正在丢失一些数据,所以我想做的是首先检查长度,如果长度小于10位,那么我想添加前导零,所以我可以使它成为10位数.我想在加入时这样做,所以我不确定这是否可行.这是一个例子,如果我在TABLE_WITHOUT_LEADING_ZERO中有251458,那么我想改变它:0000251458.这是我到目前为止:

select ACCT_NUM, H.CODE
 FROM TABLE_WITH_LEEDING_ZERO D,  TABLE_WITHOUT_LEADING_ZERO H
 WHERE substring(D.ACCT_NUM from position('.' in D.ACCT_NUM) + 2) = cast (H.CODE as varchar (10))
Run Code Online (Sandbox Code Playgroud)

谢谢

postgresql netezza

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

Netezza"[08S01]通信链路故障"加载外部数据

我得到:

ERROR [HY008]操作被取消ERROR [08S01]通信链路故障

尝试将外部.txt文件上载到Netezza数据库时.我在过去(仅在上周)完成了这项工作,但今天收到此错误.能够连接到DB,运行truncate和create table语句来加载这些数据,可以选择等等......但是没有运气加载.这是大约200K记录,这是我的代码:

INSERT INTO PTG_ITO_ETL.FINANCE_TY15_RT_TPG
SELECT * FROM EXTERNAL 'C:\\Users\\Documents\\Data Sources\\Finance_FY15_RT\\SBTPG\\TPG_INTUIT_RT_PRODIV_20150214.TXT'
USING
(
    MAXERRORS 1
    DATESTYLE 'MDY'
    DATEDELIM '/'
    BOOLSTYLE 'Y_N'
    Y2BASE 2000
    ENCODING 'internal'
    SKIPROWS 1
    REMOTESOURCE 'ODBC'
    ESCAPECHAR '\'
)
Run Code Online (Sandbox Code Playgroud)

从我在这个主题上找到的其他帖子尝试过解决方案:

ERROR [08S01]在netezza中将数据插入外部表时通信链路出现故障

"我在Windows 7和Windows Server 2008 R2中发现TCP烟囱设置是罪魁祸首.

http://blogs.dirteam.com/blogs/sanderberkouwer/archive/2008/05/15/backward-compatible-networking-with-server-core.aspx

Follwing命令为我解决了这个问题:

netsh interface tcp set global rss=disabled
netsh interface tcp set global chimney=disabled
netsh interface tcp set global autotuning=disabled"
Run Code Online (Sandbox Code Playgroud)

但是,无济于事.不知道造成这个问题的原因是什么?在Windows 7上使用Aginity,Netezza版本7.0.4谢谢!

谢谢,克雷格

sql netezza external-tables insert-into sql-insert

5
推荐指数
1
解决办法
5540
查看次数

是否可以将文本文件批量加载到表中而不是Netezza中的外部表?

我使用EXTERNAL TABLE从文本文件批量加载数据到Netezza,并在将数据加载到外部表后我更新了同一个外部表中的那些列,因为你无法更新外部表我必须从外部表中分配所有数据到一个临时表,我能够做更新,而有没有其他方法,我可以直接将文本文件数据批量加载到表而不是Netezza中的外部表?

netezza

4
推荐指数
1
解决办法
8029
查看次数

在Netezza中生成均匀的随机范围

Netezza说它的random()函数生成一个介于0.0和0.99999之间的浮点数......我试图在一个范围内(例如,在5到10之间)生成随机整数.互联网告诉我使用这样的等式将分数缩放到范围内的数字:

select f,count(*) from (
    select CAST(5 + random() * (10-5) as INT) as f
    from table_of_numbers
    where number between 1 and 5000
) x group by 1 order by 1
Run Code Online (Sandbox Code Playgroud)

但是,当我使用该代码时,极值在样本中代表性不足:

F    COUNT
5    486    <---
6    992
7    1057
8    1000
9    937
10   528    <---
有谁知道我怎么解决这个问题?

谢谢!

sql random netezza

4
推荐指数
1
解决办法
7131
查看次数

Netezza以编程方式查找表的分发键

是否可以以编程方式找到Netezza表正在使用哪种分配算法?

我可以通过导出表DDL在Workbench中手动进行操作,但是我希望能够通过运行某种元数据SQL查询以编程方式进行操作。

我查看了大多数系统表,但是在任何地方都找不到此信息。

有任何想法吗?

netezza

4
推荐指数
1
解决办法
6430
查看次数

删除如果存在于netezza中

我需要一个命令来删除一个表,如果它存在于NETEZZA中,那样的东西:

drop table if exists xxx;
Run Code Online (Sandbox Code Playgroud)

我搜索并尝试了很多,但它没有用.你能帮帮我吗?

if-statement exists netezza

4
推荐指数
1
解决办法
9365
查看次数

如何使用Netezza NZSQL中的制表符分隔符输出文件

我试图使用NZSQL CLI输出一些文件但不能输出为制表符分隔文件.在新西兰工作过的人可以分享你对下面这个命令的想法.

到目前为止尝试: -

nzsql  -o sample.txt -F=  -A -t -c  "SELECT * FROM DW_ETL.USER WHERE datasliceid % 20 = 2 LIMIT 5;"
Run Code Online (Sandbox Code Playgroud)

sql bigdata netezza nzsql

4
推荐指数
1
解决办法
6838
查看次数

执行查询时 PyODBC Python 3 错误 (Ubuntu 14.04)

我正在尝试使用 Python 3.4.3 在 Ubuntu 14.04 上配置 ODBC。我能够成功建立连接,但在执行时出现此错误:

>>> cursor.execute("SELECT * FROM xxx.yyy.zzz LIMIT 100;")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.ProgrammingError: ('42000', '[42000] ERROR:  \'S\'\nerror    ^ found "S" (at char 1) expecting a keyword (27) (SQLExecDirectW)')
Run Code Online (Sandbox Code Playgroud)

执行查询的相同代码在 Python 2.7 上运行良好。我还可以使用 UNIX shell 建立连接strace isql,这让我认为我的 ODBC 连接工作正常。是吗?


网上没有太多关于此的信息。以下是我根据我发现的一些博客所做的一些事情。我的理解正确吗?

  1. 正如PyODBC 票证中提到的:

    在我的例子中,ODBC 驱动程序 (NetezzaSQL) 设置为使用 UTF8。我首先认为问题是 Python 的 UC2 或 UC4 版本。两者没有区别。将驱动程序切换为 UTF16 (UnicodeTranslationOption=utf16) 解决了我的问题。

    我已经UnicodeTranslationOption=utf16设置了所有obdc*.ini文件。 …

python pyodbc netezza python-3.x ubuntu-14.04

4
推荐指数
1
解决办法
1713
查看次数

在netezza aginity中如何获取表的结构

在 Oracle 中,我们可以提供类似 desc table_name 的信息,但由于我使用的是 Netezza,因此无法获得表的描述。如果有人知道,请告诉我。

netezza

4
推荐指数
1
解决办法
8726
查看次数