我试图将两个变量存储在两个变量中。
例如:
var1=$(select max(columnA) from table)
var2=$(select min(columnA) from table)
我可以合并上述语句并执行相同的一次并将最大值存储在var2中的var1和min值中吗?
我正在使用Redshift DB。
答案 0 :(得分:5)
我知道这个问题已经过时了,但我也需要找到问题的解决方案。经过多次游戏后,我想出了解决方案。
-- Create a temp table for storing the variables
create temp table tmp_vars (
x int,
y date
);
-- Store the values in the temp table
insert into tmp_vars (x, y) values
((select max(id) from table1),
(select max(date) from table2));
-- Use the variable in a query
select *
from some_table
where date >= (select y from tmp_vars limit 1);
-- Drop the temp table
drop table tmp_vars;
答案 1 :(得分:1)
可悲的是,AWS Redshift不支持变量或任何类型的过程功能(PL / pgSQL),如触发器,存储过程/函数等。
答案 2 :(得分:0)
您无法在Redshift中定义变量。
但你可以做到以下几点:
WITH
part1 as (select max(columnA) myMax from table),
part2 as (select min(columnA) myMin from table)
SELECT part1.myMax, part2.myMin from part1, part2