问题标签 [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 投票
1 回答
41 浏览

snowflake-sql - 我可以在 CASE WHEN THEN 子句下使用 'OR' 语句吗?

我在雪花上有一张my_table表:

公司 交易
美国人 321-美国鹰 123
耐克 080* 耐克_74093
美国人 00 美洲鹰_42
阿迪达斯 0101阿迪达斯**093
美国人 987 美国航空公司_4
美国人 17 美国运通 02
美国人 09 美国-EAGLE_42
美国人 0* 美国航空公司 **7
美国人 101美国运通*9
可口可乐 98*可口可乐__4237

COMPANY 栏是公司的简称(基本上是公司名称的第一个字)。

TRANSACTIONS 列是我的数据集中显示的交易名称。由于处理方式不同,每个交易名称中都会有一些前缀和后缀。

对于Company列值“American”, Transactions列中可能对应有“American Eagle”、“American Airline”、“American Express”等。

如果我只想保留来自American Eagle交易的行,而 Company 列的值为“ American ”与所有其他公司的交易,我该怎么办?

我正在寻找的结果表:

公司 交易
美国人 321-美国鹰 123
耐克 080* 耐克_74093
美国人 00 美洲鹰_42
阿迪达斯 0101阿迪达斯**093
美国人 09 美国-EAGLE_42
可口可乐 98*可口可乐__4237

下面是我试图解决问题的 SQL 查询,我在这里遇到的挑战甚至是 American Eagle,Transactions 列的值可能类似于"AMERICAN EAGLE"(中间有空格) 、"AMERICANEAGLE"(没有空格)"AMERICAN -EAGLE"(中间的连字符)等。因此,我尝试在我的 SQL 查询中使用 CASE WHEN ... THEN (...OR...) 语句。但是,以下查询不起作用并弹出错误。

我可以在“THEN”子句下使用“OR”语句,因为 CASE WHEN THEN 只返回一个值吗?

0 投票
0 回答
26 浏览

sql - 数据层次分组清洗-雪花-sql

我有一个包含数千个客户名称的下表,这些客户名称应该有一个与一个特定公司名称相关的层次字段 - 基本上来自下面我想对所有埃森哲名称(埃森哲全球服务有限公司、埃森哲全球解决方案有限公司、埃森哲 LLP)进行分组并让他们报告到公司名称中的埃森哲,这将使报告更加清晰。

我目前有一个 csv 文件,它经常手动更新,因此很容易犯人为错误。此外,我们的案例陈述会随着时间的推移而变得更大,因此也不是必需的。

非常感谢任何帮助

在此处输入图像描述

0 投票
1 回答
31 浏览

sql - DAY 功能反转

我目前正在尝试获取一个月的相反日期。因此,如果它是 3 月的第 1 天,则相反的日期是 31,依此类推。

有多种方法可以获得一个月中的哪一天,但我想不出一种相反的方法(尤其是当你的月份少于 31 天时)。

我正在研究 Snowflake 并获得月份中的某一天,我将使用 day() 函数。

这导致

现在有人可以帮我得到相反的顺序吗?在此示例中,它应该是月份的第 30 天。

0 投票
2 回答
85 浏览

sql - 使用 Snowflake SQL 如何找到两条记录,然后根据这些记录将另一条记录更改为使用局部变量的预定义记录?

使用 SQL,您如何使用两条记录来查找位置、保留该位置并使用该记录将“Nonsense”值替换为保留的位置?我将展示到目前为止我能够写的内容,然后写下我仍在尝试弄清楚的内容:

当前表格数据;“ACCTS_OF_SUPERHEROS”表

期望的输出

0 投票
1 回答
42 浏览

security - 使用创建表的潜在安全漏洞

在表上使用数据屏蔽时,我发现了一个意外的结果。我有一个以提升角色运行的进程,它加载包含敏感数据的表。因为摄取的数据实际上是对表的完整刷新,所以过程运行如下:

表 A 在多个列上存在数据屏蔽规则。

表 B 是使用创建的create transient table B like A copy grants

数据在表 B 中加载和处理。

表 A 使用更新alter table A swap with B

表 B 被删除。

发生的情况是创建的表 B 缺少应用于表 A 中存在的特定列的数据屏蔽策略。交换时,表 A 上的先前屏蔽策略被消除,因为它不再存在于表 B 上。

要解决此问题,创建表 BI 后必须重新应用数据屏蔽策略。一旦这到位,它就会在交换操作中被交换到表 A。

我认为这对于没有预料到这种行为的开发人员来说是一个缺陷,如果他们没有正确测试他们的工作,可能会暴露信息。

我的预期行为是:

(1) 像 A 一样创建表 B 时,表 B 还包括该表上的所有数据策略,这可能是列掩码或行级安全性。

(2) 当表 B 与 A 交换时,被交换到 (A) 的表维护该表上的数据策略。

我的偏好是(1)。也许这可以是一个额外的命令,比如

这真的是一个安全漏洞还是我错过了什么?

0 投票
1 回答
16 浏览

snowflake-sql - 在特定事件之后的行 FOR A KEY

我有一张如下表,

在此处输入图像描述

并且我试图在第一次出现某个键的特定事件+包含该事件的行之后获取所有行,如下面的“xn”(column1),

在此处输入图像描述

0 投票
0 回答
27 浏览

snowflake-sql - 雪花中的日期枚举

我正在使用 Snowflake SQL,我对如何转换下面的表格感到困惑,非常感谢您的专家帮助!

起始表:

店铺 开始日期 结束日期 标题
凤凰 2021-03-19 2021-03-22 储存和保存
亚特兰大 2021-09-30 2021-10-01 节省 10%

转换成这张表:

店铺 日期 标题
凤凰 2021-03-19 储存和保存
凤凰 2021-03-20 储存和保存
凤凰 2021-03-21 储存和保存
凤凰 2021-03-22 储存和保存
亚特兰大 2021-09-30 节省 10%
亚特兰大 2021-10-01 节省 10%
0 投票
1 回答
22 浏览

view - 将视图保存在某个模式而不是 PUBLIC

我在雪花中创建了一个视图:

目前,它保存在 PUBLIC 模式中。如何将其保存在其他位置?例如,在“PROD_DWH”数据库中模式“DBT_USER_MARKT”的“视图”部分下?

0 投票
1 回答
40 浏览

snowflake-cloud-data-platform - 如何将 SNOWPIPE 从一种模式移动到另一种模式?

我怎样才能将雪管从一种模式移动到另一种模式?如果我使用以下命令,它会替换吗?

Create or replace pipe <target_schema>.<mypipe_name> as

我找不到用于重命名管道或更改架构的 alter 语句。

0 投票
0 回答
106 浏览

amazon-s3 - 从 S3 复制数据时尝试映射列出现错误 SQL 编译错误:在“s3:bucket/file.csv.gz”中找到无效的 URL 前缀

我正在尝试通过映射将字段从 s3 csv 文件映射到雪花表,因为雪花表中的列比旧的过时 s3 文件中的列更多。

我能够在没有映射的情况下运行,因为我收到一个错误,即表中的列多于输入文件中的列。

我得到的映射错误是:SQL 编译错误:在以下位置找到无效的 URL 前缀:'s3://ibucket/jira_scripts/history/2016-12-07.csv.gz'

感谢您的任何指示。