创建输出列
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,您可以使用 LISTAGG
或 ARRAY_AGG
,具体取决于您要将数据存储为字符串还是数组。在Snowflake中,我建议大家将这些数据存储为一个数组,这样以后查询的时候更容易处理。
https://docs.snowflake.com/en/sql-reference/functions/array_agg.html
https://docs.snowflake.com/en/sql-reference/functions/listagg.html
我在客户层面工作,我有一个包含我销售的 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,您可以使用 LISTAGG
或 ARRAY_AGG
,具体取决于您要将数据存储为字符串还是数组。在Snowflake中,我建议大家将这些数据存储为一个数组,这样以后查询的时候更容易处理。
https://docs.snowflake.com/en/sql-reference/functions/array_agg.html
https://docs.snowflake.com/en/sql-reference/functions/listagg.html