16

我相信SELECT INTOSnowflake 中有类似 - 的语法,但我找不到使用它的文档或示例。

CREATE TABLE raw_data (
    Timestamp TIMESTAMP NOT NULL, 
    Date DATE NOT NULL, 
    UserID STRING,
    Address STRING,
    Phone STRING,
    Value INTEGER
);

COPY INTO raw_data from 's3://my_bucket'
CREDENTIALS=(AWS_KEY_ID='XXXXX' AWS_SECRET_KEY='XXXX')
ON_ERROR=CONTINUE;

CREATE TABLE summary (
    Date DATE NOT NULL,
    UserID STRING,
    Value INTEGER
);

INSERT INTO summary 
SELECT Date, UserID, Value FROM raw_data

以上方法有效,但不是定义summary我想要的表SELECT INTO并让 SQL 解析器为我创建表。

4

3 回答 3

27

您可以使用 Create Table AS (CTAS) 来完成此操作。在您的情况下,它将是:

CREATE TABLE SUMMARY AS
SELECT
  Date
, UserID
, Value
FROM
  raw_data;

这是一个没有使用我测试过的数据的示例:

create table foo as select $1, $2
from

    values ( 1, 'two' ), ( 3, 'four' ), ( 5, 'six' );

    select * from foo;

希望这可以帮助!

于 2016-01-28T18:21:18.693 回答
0

CREATE TABLE summary AS SELECT Date, UserID, Value FROM raw_data

于 2020-04-24T16:58:27.653 回答
-3

您还可以使用标准的“WITH AS”命名法:

    with a as (
        SELECT
        Date
        ,UserID
        ,Value
        FROM
        raw_data)
    SELECT * FROM a
于 2019-09-10T15:31:04.617 回答