Я использую REDSHIFT для приведенного ниже вопроса. Вот проблема, и я ищу решение.
У меня есть 2 таблицы, одна таблица содержит комбинации столбцов, по которым вторая таблица должна сгруппировать результаты.
Таблица 1, содержащая комбинации столбцов (Это вывод хранимой процедуры):
COMBINATIONS
fruit_combinations
banana,'ALL'
banana, orange
Таблица 2, содержащая fruit_baskets:
FRUIT_BASKET
BANANA ORANGE USER_COUNT
b1 o1 5
b1 o2 10
Набор результатов:
FRUIT_BASKET_AGG
BANANA ORANGE USER_COUNT
b1 'ALL' 15
b1 o1 5
b1 o2 10
Пробное решение в Redshift:
PREPARE executesql(VARCHAR(10),VARCHAR(10))
AS
select $1,$2, sum(fb.user_Count) as user_count
from dv_product.fruit_basket fb
group by 1,2;
EXECUTE executesql("BANANA","ORANGE") ;
DEALLOCATE executesql;
Error: [Amazon](500310) Invalid operation: column "banana" does not exist;
Вопросы:
1 - Есть ли способ передать имена столбцов в качестве параметра в оператор SQL и выполнить SQL?
2 - Какая другая альтернатива для достижения набора результатов, упомянутого выше в Redshift?