#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];