小编ana*_*iso的帖子

Redshift:从字符串执行动态查询

我想在Amazon Redshift上执行存储在字符串字段中的动态SQL查询.

我的背景主要是T-SQL关系数据库.我曾经动态地构建SQL语句,将它们存储到变量中并执行它们.我知道Redshift可以准备和执行语句,但我想知道是否可以执行存储在字符串字段中的查询.

我有一段代码使用pg_*系统表在几个表上使用stats动态构建下面的代码.每个列/表名都是动态计算的.以下是查询输出的示例:

SELECT h_article_id AS key, 'transport_parameters_weight_in_grams' AS col_name, COUNT(DISTINCT transport_parameters_weight_in_grams) AS count_value FROM dv.s_products GROUP BY h_article_id UNION ALL
SELECT h_article_id AS key, 'transport_parameters_width_in_mm' AS col_name, COUNT(DISTINCT transport_parameters_width_in_mm) AS count_value FROM dv.s_products GROUP BY h_article_id UNION ALL
SELECT h_article_id AS key, 'label_owner_info_communication_address' AS col_name, COUNT(DISTINCT label_owner_info_communication_address) AS count_value FROM dv.s_products GROUP BY h_article_id
Run Code Online (Sandbox Code Playgroud)

我想在另一个查询中输入这个动态的代码片段,所以我可以制作一些统计信息,如下所示:

SELECT col_name, AVG(count_value*1.00) AS avg_count
FROM (
  'QUERY ABOVE'
) A
GROUP BY col_name;
Run Code Online (Sandbox Code Playgroud)

这将输出如下内容:

col_name                                avg_count
transport_parameters_weight_in_grams    1.00
transport_parameters_width_in_mm        1.00
label_owner_info_communication_address  0.60 …
Run Code Online (Sandbox Code Playgroud)

sql dynamic amazon-redshift

8
推荐指数
2
解决办法
1万
查看次数

XPath normalize-space()返回一系列规范化字符串

我需要使用XPath函数normalized-space()来规范化我要从XHTML文档中提取的文本:http://test.anahnarciso.com/clean_bigbook_0.html

我正在使用以下表达式:

//*[@slot="address"]/normalize-space(.)
Run Code Online (Sandbox Code Playgroud)

这在我用来测试XPath表达式的Qizx Studio中非常有效.

    let $doc := doc('http://test.anahnarciso.com/clean_bigbook_0.html')
    return $doc//*[@slot="address"]/normalize-space(.)
Run Code Online (Sandbox Code Playgroud)

这个简单的查询返回一个序列xs:string.

144 Hempstead Tpke
403 West St
880 Old Country Rd
8412 164th St
8412 164th St
1 Irving Pl
1622 McDonald Ave
255 Conklin Ave
22011 Hempstead Ave
7909 Queens Blvd
11820 Queens Blvd
1027 Atlantic Ave
1068 Utica Ave
1002 Clintonville St
1002 Clintonville St
1156 Hempstead Tpke
Route 49
10007 Rockaway Blvd
12694 Willets Point Blvd
343 James St
Run Code Online (Sandbox Code Playgroud)

现在,我想在我的Java代码中使用前一个表达式.

String …
Run Code Online (Sandbox Code Playgroud)

java xml xpath

6
推荐指数
1
解决办法
4337
查看次数

标签 统计

amazon-redshift ×1

dynamic ×1

java ×1

sql ×1

xml ×1

xpath ×1