创建输出列

create an output column

我在客户层面工作,我有一个包含我销售的 3 种产品的列,我想知道每个客户他们已经购买了哪些产品? 但是,如果该客户购买了不止一件商品怎么办? 我想创建一个专栏,告诉我他们到底买了什么 'Coffee'、'mug' 或 'chocolate'.. 我如何在输出中表示它?同样,所有这些信息都存储在一个名为 'product'

的列中

谢谢

您想使用 GROUP_CONCAT (mySQL) 或 STRING_AGG (tSQL)

所以你想为 mysql 做这样的事情:

SELECT a.[CustomerID], GROUP_CONCAT(a.[Product])  as Products 
FROM [tblSells] a 
GROUP BY a.[CustomerID];

或者像这样的 tsql:

SELECT a.[CustomerID], STRING_AGG(a.[Product],'.') as Products 
FROM [tblSells] a
GROUP BY a.[CustomerID];

对于 Snowflake,您可以使用 LISTAGGARRAY_AGG,具体取决于您要将数据存储为字符串还是数组。在Snowflake中,我建议大家将这些数据存储为一个数组,这样以后查询的时候更容易处理。

https://docs.snowflake.com/en/sql-reference/functions/array_agg.html

https://docs.snowflake.com/en/sql-reference/functions/listagg.html