有条件地创建临时文件 table
Conditionally create temp table
我正在使用 Netezza,需要根据变量的值有条件地创建临时 table table1
,例如 $var
通常我会在 Netezza 中创建一个临时文件 table,如下所示。
CREATE TEMP TABLE table1 AS
(
-- statement to fill the data
) DISTRIBUTE ON RANDOM;
假设我有一个像下面这样的 table t1 和一些数据
+---------+
| val |
+---------+
| 0 |
| 4 |
| 8 |
| 12 |
| 16 |
| 20 |
+---------+
基于 $var
的值,我想从 table select val
并包含在临时 table table1
中。
下面是我的代码起点。我需要一些关于语句的帮助来应用条件。
CREATE TEMP TABLE table1 AS
(
SELECT * FROM
(
-- when `$var` == `all`
SELECT * FROM t1
-- when `$var` == `above_mean`
SELECT * FROM t1
WHERE val > mean(val)
)
) DISTRIBUTE ON RANDOM;
PostgreSQL 兼容的 Netezza 解决方案会很有帮助。
我不知道变量 var
是什么类型,或者它在您的 create table 语句中如何表示,但您应该能够将两者结合起来查询:
CREATE TEMP TABLE table1 AS (
SELECT * FROM t1 WHERE var = 'all'
UNION ALL
SELECT * FROM t1 WHERE var = 'above_mean' AND val > mean(val)
) DISTRIBUTE ON RANDOM;
我正在使用 Netezza,需要根据变量的值有条件地创建临时 table table1
,例如 $var
通常我会在 Netezza 中创建一个临时文件 table,如下所示。
CREATE TEMP TABLE table1 AS
(
-- statement to fill the data
) DISTRIBUTE ON RANDOM;
假设我有一个像下面这样的 table t1 和一些数据
+---------+
| val |
+---------+
| 0 |
| 4 |
| 8 |
| 12 |
| 16 |
| 20 |
+---------+
基于 $var
的值,我想从 table select val
并包含在临时 table table1
中。
下面是我的代码起点。我需要一些关于语句的帮助来应用条件。
CREATE TEMP TABLE table1 AS
(
SELECT * FROM
(
-- when `$var` == `all`
SELECT * FROM t1
-- when `$var` == `above_mean`
SELECT * FROM t1
WHERE val > mean(val)
)
) DISTRIBUTE ON RANDOM;
PostgreSQL 兼容的 Netezza 解决方案会很有帮助。
我不知道变量 var
是什么类型,或者它在您的 create table 语句中如何表示,但您应该能够将两者结合起来查询:
CREATE TEMP TABLE table1 AS (
SELECT * FROM t1 WHERE var = 'all'
UNION ALL
SELECT * FROM t1 WHERE var = 'above_mean' AND val > mean(val)
) DISTRIBUTE ON RANDOM;