如何在 Azure 流分析中聚合多个数组
How to aggregate multiple arrays in Azure Stream Analytics
我有一个 table 看起来像这样:
"A" : [1,2,3],
"A" : [4,5,6],
"A" : [7,8,9],
"B" : [10,11,12]
"B" : [13,14,15]
"B" : [16,17,18]
我需要它看起来像这样:
"A" : [1,2,3,4,5,6,7,8,9],
"B" : [10,11,12,13,14,15,16,17,18]
如何根据流分析中的字母合并数组?我尝试过的所有聚合函数都无济于事。
谢谢-
我认为适合这样的东西
drop table if exists dbo.test_table;
go
create table dbo.test_table(
letter char(3) not null,
string varchar(20) not null);
insert dbo.test_table(letter, string) values
('"A"', '[1,2,3]'),
('"A"', '[4,5,6]'),
('"A"', '[7,8,9]'),
('"B"', '[10,11,12]'),
('"B"', '[12,14,15]'),
('"B"', '[16,17,18]');
select letter, concat('[', string_agg(cast(intg.value as varchar(9)),',') within group (order by intg.value), ']') colName
from dbo.test_table t
cross apply
string_split(substring(string, 2, len(string)-2),',') intg
group by letter;
结果
letter colName
"A" [1,2,3,4,5,6,7,8,9]
"B" [10,11,12,12,14,15,16,17,18]
最好的方法是 GROUP BY 并使用 COLLECT() 作为聚合。这会给你 {name : "A", val : [ [1,2,3], [4,5,6], [7,8,9] ] }, ...
然后使用 JavaScript UDF 来展平数组的数组。
以下是文档的一些链接:
https://docs.microsoft.com/en-us/stream-analytics-query/collect-azure-stream-analytics
谢谢!
我有一个 table 看起来像这样:
"A" : [1,2,3],
"A" : [4,5,6],
"A" : [7,8,9],
"B" : [10,11,12]
"B" : [13,14,15]
"B" : [16,17,18]
我需要它看起来像这样:
"A" : [1,2,3,4,5,6,7,8,9],
"B" : [10,11,12,13,14,15,16,17,18]
如何根据流分析中的字母合并数组?我尝试过的所有聚合函数都无济于事。
谢谢-
我认为适合这样的东西
drop table if exists dbo.test_table;
go
create table dbo.test_table(
letter char(3) not null,
string varchar(20) not null);
insert dbo.test_table(letter, string) values
('"A"', '[1,2,3]'),
('"A"', '[4,5,6]'),
('"A"', '[7,8,9]'),
('"B"', '[10,11,12]'),
('"B"', '[12,14,15]'),
('"B"', '[16,17,18]');
select letter, concat('[', string_agg(cast(intg.value as varchar(9)),',') within group (order by intg.value), ']') colName
from dbo.test_table t
cross apply
string_split(substring(string, 2, len(string)-2),',') intg
group by letter;
结果
letter colName
"A" [1,2,3,4,5,6,7,8,9]
"B" [10,11,12,12,14,15,16,17,18]
最好的方法是 GROUP BY
然后使用 JavaScript UDF 来展平数组的数组。
以下是文档的一些链接:
https://docs.microsoft.com/en-us/stream-analytics-query/collect-azure-stream-analytics
谢谢!