当前位置: 首页 > 面试题库 >

如何在AWS Redshift数据库中获取过滤器的子字符串和group by子句

于高雅
2023-03-14
问题内容

如何从包含AWS Redshift数据库中的filter和group by子句记录的列中获取子字符串。

我有记录,如表:

Table_Id | Categories         | Value
<ID>     | ABC1; ABC1-1; XYZ  | 10
<ID>     | ABC1; ABC1-2; XYZ  | 15
<ID>     | XYZ                | 5
.....

现在,我想根据“ ABC1”或“ ABC1和XYZ”等单个类别过滤记录

查询的预期输出将是:

Table_Id | Categories         | Value
<ID>     | ABC1               | 25
<ID>     | ABC1-1             | 10
<ID>     | ABC1-2             | 15
<ID>     | XYZ                | 30
.....

因此需要根据各个类别对结果进行分组。


问题答案:

@ JonScott,@ AlexYes和其他在类似情况下挣扎的朋友。

除了@AlexYes所建议的方法外,我发现了其他更好的方法。

我所做的是,我将结果列扁平化,这会产生单个记录。我可以进一步处理。

询问:

select row_number() over(order by 1) as r1, 
        to_char(timestamptz 'epoch' + date_time * interval '1 second', 'yyyy-mm-dd') AS DAY,
        split_part(categories, ';', numbers.n) as catg,
        value
    from <TABLE>
    join numbers
    on numbers.n <= regexp_count(category_string, ';') + 1 <OTHER_CONDITIONS>

解释:

这里有两个有用的函数:首先,split_part函数将一个字符串分割为’;’。分隔符,并返回从拆分字符串指定的第一个,第二个,…,第n个值;第二个是regexp_count,它告诉我们在字符串中找到特定模式的次数。



 类似资料:
  • 问题内容: 有没有一种方法可以在Python中对字符串进行子字符串化,以从第三个字符到字符串末尾获取新的字符串? 也许喜欢吗? 如果离开第二部分意味着“直到最后”,而如果离开第一部分,它是否从头开始? 问题答案: Python称这个概念为“切片”,它不仅适用于字符串,还适用于更多的领域。看看这里的一个全面的介绍。

  • 我试图解决的用例是: 查找 /apps.下所有组件的所有页面引用 i、 e.首先查找正在使用组件的所有页面,然后对/apps下的所有组件执行此操作。 通过使用Adobe AEM的报表生成器工具:https://adobe-consulting-services.github.io/acs-aem-commons/features/report-builder/configuring.html 查询

  • 我有两根绳子 在两种情况下,我应该删除

  • 我使用的是JAVA中的Jayway JsonPath 2.2版本。关于这一点,我几乎没有问题。 示例JSON: > 如: 用于获取字符串的路径是预期结果:(字符串),但获取["type2"](数组) 如果我将其作为字符串提取时出错,请更正路径? 应用筛选器后,无法为结果数组编制索引。我怎样才能达到同样的效果? 如: 如果我使用路径,而不是返回第一个,它将返回 是否可以使用jsonPath从字符串中

  • 假设我有这个字符串作为输入 char peer0_0[] = { 0x17,0x03,0x03,0x00,0xa2,0x00,0x00,0x00,0x01,0xc3,0xb3,0xee,0x9a,0x37,0xb6,0xbf,0x8f,0x89,0x58,0xe4,0x8d,0x8a,0x0b,0xe8,0x98,0xba,0x49,0x0f,0x45,0x7c,0x93,0x65,0x 0x80

  • 问题内容: 想要改善这篇文章吗? 提供此问题的详细答案,包括引文和为什么答案正确的解释。答案不够详细的答案可能会被编辑或删除。 我需要一个函数来返回两个单词(或两个字符)之间的子字符串。我想知道是否有实现该功能的php函数。我不想考虑正则表达式(嗯,我可以做一个,但实际上并不认为这是最好的方法)。思维与功能。这是一个例子: 我们调用该函数: 它返回:“我想要一个蛋糕”。 提前致谢。 更新: 嗯,到