问题标签 [snowflake-sql]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1640 浏览

snowflake-cloud-data-platform - 使用数组和对象从多个值插入雪花表

我正在尝试通过 SQL 语句将带有数组和结构的多行插入到雪花中。要将值数组插入到列中,我正在使用该ARRAY_CONSTUCT函数并插入我正在使用该函数的结构/字典/对象OBJECT_CONSTRUCT

例如

这会导致异常:

SQL 编译错误:VALUES 子句中的表达式 [ARRAY_CONSTRUCT(0, 1, 2)] 无效

使用此语法插入单行有效:

但是,尚不清楚这是否以及如何用于插入多行。

表定义为:

这样做的正确方法是什么? (我需要将数据溢出到文件中并从那里加载还是有直接的方法可以做到这一点?)

我发现的唯一提及是在此处的“答案”中。

澄清一下,我将数据插入到一个临时表中,然后从该表中合并到另一个表中,因为我找不到通过 SQL 语句从值(即不是来自表)中合并数据的方法。

0 投票
1 回答
76 浏览

sql - 如何计算一个数字在 SQL 中进入另一个数字的次数?

试图找出解决这个问题的最佳方法。为了简单起见,我将编造一些不合理的情况作为例子;我是一个有一些垃圾数据的商人,我不知道人们购买了多少物品,所以我必须回到它

  • 我有三种产品,客户以三种不同的价格购买(250 美元、350 美元、500 美元)
  • 我有客户支付的总金额(与此示例无关的税款/退款等)

因此,如果我知道一位客户支付了 600 美元——他们很可能以 250 美元的价格购买了一件产品,以 350 美元的价格购买了一件产品。如果客户支付了 1000 美元,那么他们要么以 500 美元的价格购买了 2 件产品,要么以 250 美元的价格购买了 4 件产品,或者以 250 美元*2 和 500 美元的价格购买了 3 件产品(谢谢@dennis)。

我想要的是这样的:

客户ID total_amount_paid 假定产品数量 假定价格
1241 1000 4 250, 250, 250, 250
1241 1000 2 500, 500
1241 1000 3 250、250、500
0912 600 2 250, 350

任何建议都会有所帮助。真的坚持试图解决这个问题而不会想太多。

0 投票
1 回答
39 浏览

snowflake-cloud-data-platform - 在雪花中查询列​​表

我在雪花中有一张像下面这样的桌子

现在我需要比较字典列表的每个键和值,并只返回键/值不同的字典的键。

例如,查看 attrs acct- 列表中有 3 个字典。前两个字典的键和值是相同的,但第三个具有不同的键/值。所以我需要返回第三个字典的键,即red-fin

预期输出:

有人可以帮我在雪花中做到这一点。

提前致谢。

0 投票
1 回答
52 浏览

snowflake-cloud-data-platform - 雪花中的窗口函数

我的数据结构如下 -

1.对于每个ID月份表示报告月份,Sub created 是原始订阅购买日期,status = 客户是否活跃,tenure 是终身月(客户返回时重置为1)

我希望能够为所有行创建子,直到它有一个新的订阅日期。我试图得到的输出如下 -

任何人都可以建议雪花代码吗?谢谢

0 投票
0 回答
143 浏览

sql - 在 R 中工作 - dbReadTable 和 dbExistsTable 声称存在使用 dbWriteTable 编写的数据库表,但数据库中不存在该表

目标:能够对 R 中的数据框进行 SQL 查询。

使用的方法:使用 dbWriteTable 将表写入数据库,然后我可以使用 SQL 查询并加入数据库中存在的其他表。

问题:似乎执行成功,但表中似乎并不实际存在于数据库中。尝试查询表时抛出的错误。详情如下:

数据框名称: testing_df = 1 列数据框

dbReadTable 提供预期的数据帧输出。

dbExistsTable 提供以下输出:

问题:该表无法位于实际的数据库 UI 中,并且在 R 中运行以下命令时:

我收到以下错误:

我能够检查数据库并看到该表实际上不存在。

问题:有谁知道 dbWriteTable 是否真的应该将表写入数据库,或者我是否误解了 dbWriteTable 的目的?有更好的方法来完成这项任务吗?

0 投票
2 回答
334 浏览

sql - SQL(雪花) - 我如何从第一个结果中返回 1 行或在第二个连接中使用 MAX

我有一个很大的查询,我在下面粘贴了部分内容。我想在我的第二次加入中使用第一次加入的结果。

我想要做的是得到最后session一个,lead_conversion然后我sessions在 then 和当前行之间得到所有

这是我正在努力的部分

我的问题是我不能只取最后一个prev_lc而且我似乎无法使用max(prev_lc.session_start)

我曾尝试在第一次选择和使用中进行分组,max但这不起作用,因为我相信这是在 on 之前运行的

我也尝试过max在第二次加入中使用,但这给出了错误 SQL compilation error: Invalid aggregate function in ON clause [MAX(CAST(PREV_LC.SESSION_START AS TIMESTAMP_NTZ(9)))]

对此的任何帮助将不胜感激

谢谢

0 投票
0 回答
24 浏览

snowflake-sql - 将两个日期之间的差异从日历时间转换为雪花中的营业时间

假设工作时间是周一至周五 08:00 至 17:00,我如何计算雪花中两个日期之间的工作时间差

在此处输入图像描述

0 投票
1 回答
73 浏览

snowflake-cloud-data-platform - Snowflake EXPLAIN 查询的输出中不存在 TableScan、InnerJoin、JoinFilter 等某些操作

我面临雪花EXPLAIN查询的一个问题。正如雪花文档中提到的,我在雪花实例中执行了以下查询,但它给出了不同的输出。

创建表:

为查询生成表格格式的 EXPLAIN 计划:

预期输出:

实际输出:

在实际输出中,我看不到 , 等操作的结果TableScanJoinFilterInnerJoin不确定是否必须在雪花实例中进行任何设置?

我们计划使用 的输出EXPLAINSELECT查询中提取表名。

0 投票
0 回答
40 浏览

snowflake-cloud-data-platform - 命令“Copy into@STAGE”生成一个名称为当前日期的文件

每天我使用 COPY INTO 命令将数据从表下载到 AWS 存储桶,但我想在生成的文件名中添加当前日期,例如 "tablename_08132021.csv" 。是否有可能做到这一点?

这是我目前的声明:

谢谢您的帮助

0 投票
1 回答
50 浏览

snowflake-cloud-data-platform - 使用密码打开 snowsql 连接时出错

在我的配置文件中,如果禁用密码,我可以成功连接到雪花。如果我启用密码并尝试下面的命令,我会得到以下错误。我使用密码短语创建具有 PKCS8 格式的公钥和私钥。请指教

private_key_path = C:\Users\abcd.snowsql\pkcs8.key

snowsql -a abcd -u a1b1c1 -o log_level=DEBUG --private-key-path C:\Users\abcd.snowsql\pkcs8.key 私钥密码:“这里我输入密码” 250001(08001):连接失败数据库:XYA86571.snowflakecomputing.com:443。JWT 令牌无效。如果错误消息不清楚,请使用 -o log_level=DEBUG 启用日志记录并查看日志以找出原因。联系支持以获得更多帮助。再见!