我想在redshift中使用generate系列函数,但还没有成功.
redshift文档说它不受支持.以下代码确实有效:
select *
from generate_series(1,10,1)
Run Code Online (Sandbox Code Playgroud)
输出:
1
2
3
...
10
Run Code Online (Sandbox Code Playgroud)
我想对约会做同样的事情.我尝试了很多变种,包括:
select *
from generate_series(date('2008-10-01'),date('2008-10-10 00:00:00'),1)
Run Code Online (Sandbox Code Playgroud)
踢出去:
ERROR: function generate_series(date, date, integer) does not exist
Hint: No function matches the given name and argument types.
You may need to add explicit type casts. [SQL State=42883]
Run Code Online (Sandbox Code Playgroud)
还尝试过:
select *
from generate_series('2008-10-01 00:00:00'::timestamp,
'2008-10-10 00:00:00'::timestamp,'1 day')
Run Code Online (Sandbox Code Playgroud)
并试过:
select *
from generate_series(cast('2008-10-01 00:00:00' as datetime),
cast('2008-10-10 00:00:00' as datetime),'1 day')
Run Code Online (Sandbox Code Playgroud)
两个都踢了出来:
ERROR: function generate_series(timestamp without time zone, timestamp without time zone, …
Run Code Online (Sandbox Code Playgroud) 'test
alpha''1382测试版'
我试过了
其中left(field1,4)喜欢'[0-9] [0-9] [0-9] [0-9]'
这不起作用,从下面的链接看起来像redshift可能不支持:
https://forums.aws.amazon.com/message.jspa?messageID=439850
'where'子句中有错误吗?如果没有,并且redshift不支持该子句,有没有办法过滤?我在考虑使用演员
cast(left(field1,4) as integer)
Run Code Online (Sandbox Code Playgroud)
如果它产生错误,然后通过该行,但不知道如何在亚马逊红移中执行此操作.或者是否存在isnumeric过滤器的其他代理.
谢谢
有没有办法从Amazon Redshift进行SQL转储?
你可以使用SQL workbench/J客户端吗?
我用命令复制:
从t1复制t1a(c1,c3)
我预计它将从t1复制c1和c3并将默认的空值放在c2中,因此t1a中的一行可能看起来像(c1_rowX,null,c3_rowX).
相反,我得到一个类型错误,因为它将来自t1的c2(字符串类型)数据复制到t1a的c3(int类型).
当我没有指定列时,copy命令工作正常:
从t1复制t1a
我已经包含了一个指向redshift copy命令文档的链接:
http://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html
当我将表从亚马逊红移卸载到S3时,无论表格多么小,它总是将表分成两部分.我已经阅读了关于卸载的redshift文档,但除了它之外没有其他答案说有时会拆分表(我从未见过它没有这样做).我有两个问题:
有没有人见过只创建一个文件的情况?
有没有办法强制将redshift卸载到单个文件中?
在bigquery中,有没有办法通过浏览器界面将数据字段设置为可空?
如果没有,并且我在列中混合了整数和NULL值,那么bigquery会接受该字段的"整数"类型还是需要"字符串"?
谢谢
我在 amazon redshift 中运行了以下三个查询:
select count(*)
from t1
Run Code Online (Sandbox Code Playgroud)
计数为 1554。
select count(*)
from t1
where
item_name ilike "blue"
Run Code Online (Sandbox Code Playgroud)
计数是62。
select count(*)
from t1
where
item_name not ilike "blue"
Run Code Online (Sandbox Code Playgroud)
计数是85。
最后两个 (62 + 85) 应该等于 1554。我错过了什么?
作为背景,我设置了100个redshift查询,比这复杂得多,但是我想我肯定缺少一些简单的东西。
我正在做表1和表2之间的左外部联接。这些表本质上是这样的:
Table1
Col1 Col2 Col3
A C E
A D F
Table2
Col 1 Col2 Col3
A C Z
Run Code Online (Sandbox Code Playgroud)
我没有where陈述。我的on声明是:
on Table1.Col1 = Table2.Col1 and Table1.Col2 = Table2.Col2
Run Code Online (Sandbox Code Playgroud)
我的结果表是:
ResultTable:
Col1 Col2 Col3 Col4
A C E Z
Run Code Online (Sandbox Code Playgroud)
我期待:
ExpectedTable:
Col1 Col2 Col3 Col4
A C E Z
A D F Null
Run Code Online (Sandbox Code Playgroud)
我想念什么?谢谢。