создайте выходной столбец

#sql #database #datagrid #report #snowflake-cloud-data-platform

Вопрос:

Я работаю на уровне клиента, и у меня есть столбец, содержащий 3 типа продуктов, которые я продаю, я хочу, чтобы каждый клиент знал, какие продукты они уже приобрели? но что, если этот клиент приобрел более одного товара? Я хочу создать колонку, в которой расскажу, что именно они купили «Кофе», «кружку» или «шоколад».. как я могу представить это в выходных данных? опять же, вся эта информация хранится в одной колонке под названием «продукт»

Спасибо

Комментарии:

1. Привет. Во-первых, я хотел бы отметить, что Stackoverflow-это не служба написания домашних заданий. Тем не менее, нам потребуется, чтобы вы предоставили дополнительную информацию: ваши таблицы, ваши данные, вашу текущую работу и ваши текущие, а также желаемые результаты.

Ответ №1:

Для 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

Ответ №2:

Вы хотите использовать 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];