【问题标题】:SELECT INTO syntax for Snowflake Datawarehouse雪花数据仓库的 SELECT INTO 语法
【发布时间】:2016-02-09 12:19:24
【问题描述】:

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

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 解析器为我创建表。

【问题讨论】:

  • create table summary as select ... 将是标准 SQL
  • 哇。他们在那里有一个真正的无文档网站,不是吗?
  • @MattGibson 该工具中有文档。我认为他们最近才开始向更大的客户群开放。

标签: sql insert-into snowflake-cloud-data-platform


【解决方案1】:

您可以使用 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;

希望这会有所帮助!

【讨论】:

    【解决方案2】:

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

        with a as (
            SELECT
            Date
            ,UserID
            ,Value
            FROM
            raw_data)
        SELECT * FROM a
    

    【讨论】:

    • 会给你一个 CTE。
    • 你是对的......现在我明白为什么人们投票否决了 :)
    【解决方案3】:

    创建表摘要 作为 选择日期、用户 ID、值 FROM raw_data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-20
      • 1970-01-01
      • 2012-12-28
      • 2020-08-10
      • 2015-02-23
      • 2020-09-09
      • 2015-01-04
      • 2019-05-19
      相关资源
      最近更新 更多