【问题标题】:Aggregate strings in Azure SQL Data Warehouse在 Azure SQL 数据仓库中聚合字符串
【发布时间】:2018-04-30 09:53:31
【问题描述】:

有没有办法在 Azure SQL 数据仓库中聚合字符串,类似于 SQL Server 中的 string_agg 函数?

我有带有字符串的记录,我想将它们连接成一个字符串。

SELECT string_agg(string_col, ',') FROM table1

https://docs.microsoft.com/en-us/sql/t-sql/functions/string-agg-transact-sql

【问题讨论】:

标签: sql sql-server azure azure-sqldw sql-data-warehouse


【解决方案1】:

2019 年 1 月更新:截至 2019 年 1 月,STRING_SPLIT 在 SQL 数据仓库中可用,根据 here

2019 年 7 月更新:截至 2019 年 7 月,STRING_AGG 在 SQL 数据仓库中可用,根据 here

Azure SQL 数据仓库是一个 MPP 系统,旨在保存数十亿条记录和 TB 级数据,因此作为第一个停靠点,您应该认真考虑它是否是进行字符串操作的正确位置。根据您运行的 DWU,它也有点贵。阅读这篇反模式文章。

Azure SQL 数据仓库工作负载模式和反模式 https://blogs.msdn.microsoft.com/sqlcat/2017/09/05/azure-sql-data-warehouse-workload-patterns-and-anti-patterns/

如果您确实需要在仓库中执行此操作,那么我确实使用过程方法专门针对 Azure SQL 数据仓库做了一个最近的示例:

Does Azure SQL Data Warehouse have a way to split strings?

【讨论】:

【解决方案2】:

实现此目的的另一种方法是使用 Azure SQL 数据仓库中提供的 PIVOT 函数。在TechNet article 中有详细描述:使用 T-SQL 在 APS/PDW AU4 中的行上连接列

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2016-06-30
  • 2017-03-07
  • 2018-05-12
  • 2018-04-24
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
  • 2016-10-26
相关资源
最近更新 更多