sql - 如何在 Azure 流分析中聚合多个数组
问题描述
我有一个看起来像这样的表:
"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]
推荐阅读
- scheme - set的用法之间的区别!并定义
- python - python变量声明理解困难
- angular - Typescript/ Angular - 如何重命名从服务器接收到的对象?
- python-3.x - 为什么我的输出有一个女性符号,我该如何摆脱它?
- laravel - 如何在 Laravel 中的另一个关系中获取 hasmany 关系
- sql-server - 要在 SQL Server 中批量导入的 BCP 格式文件引发 ODBC 错误
- github - 如何将 Jitterbit 与 GitHub 或 Bitbucket 集成
- java - 升级依赖项后的 Java 版本错误
- merge - clickhouse:SYSTEM STOP MERGES 不起作用
- r - 如何在我的 R 包中使用 get0 仅在包命名空间中搜索?