我试图基于某些列在指定的时间范围内连接表.我已经尝试了几种方法并且无法解决这个问题.
我从一个简单的查询开始:
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) 我想加入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)
谢谢
我得到:
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烟囱设置是罪魁祸首.
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谢谢!
谢谢,克雷格
我使用EXTERNAL TABLE从文本文件批量加载数据到Netezza,并在将数据加载到外部表后我更新了同一个外部表中的那些列,因为你无法更新外部表我必须从外部表中分配所有数据到一个临时表,我能够做更新,而有没有其他方法,我可以直接将文本文件数据批量加载到表而不是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 <---
有谁知道我怎么解决这个问题?
谢谢!
是否可以以编程方式找到Netezza表正在使用哪种分配算法?
我可以通过导出表DDL在Workbench中手动进行操作,但是我希望能够通过运行某种元数据SQL查询以编程方式进行操作。
我查看了大多数系统表,但是在任何地方都找不到此信息。
有任何想法吗?
我需要一个命令来删除一个表,如果它存在于NETEZZA中,那样的东西:
drop table if exists xxx;
Run Code Online (Sandbox Code Playgroud)
我搜索并尝试了很多,但它没有用.你能帮帮我吗?
我试图使用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) 我正在尝试使用 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 连接工作正常。是吗?
网上没有太多关于此的信息。以下是我根据我发现的一些博客所做的一些事情。我的理解正确吗?
正如PyODBC 票证中提到的:
在我的例子中,ODBC 驱动程序 (NetezzaSQL) 设置为使用 UTF8。我首先认为问题是 Python 的 UC2 或 UC4 版本。两者没有区别。将驱动程序切换为 UTF16 (UnicodeTranslationOption=utf16) 解决了我的问题。
我已经UnicodeTranslationOption=utf16设置了所有obdc*.ini文件。 …
在 Oracle 中,我们可以提供类似 desc table_name 的信息,但由于我使用的是 Netezza,因此无法获得表的描述。如果有人知道,请告诉我。
netezza ×10
sql ×4
bigdata ×1
exists ×1
if-statement ×1
insert-into ×1
nzsql ×1
postgresql ×1
pyodbc ×1
python ×1
python-3.x ×1
random ×1
sql-insert ×1
ubuntu-14.04 ×1