有条件地创建临时表

时间:2018-02-07 05:58:52

标签: sql postgresql netezza

我正在使用Netezza,需要根据变量的值有条件地创建临时表table1,例如$var

通常我会在Netezza中创建一个临时表,如下所示。

CREATE TEMP TABLE table1 AS
(
 -- statement to fill the data
) DISTRIBUTE ON RANDOM;

假设我有一个像下面的表t1,有一些数据

+---------+
| val     |
+---------+
|       0 |     
|       4 |    
|       8 |    
|      12 |  
|      16 | 
|      20 |
+---------+

根据$var的值,我想从表中选择val并将其包含在临时表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解决方案非常有用。

1 个答案:

答案 0 :(得分:1)

我不知道变量 F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 ... F1025 F1026 F1027 \ 5005 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 5006 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 5010 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 5013 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 5016 6 6 6 6 6 6 6 6 6 6 ... 0 0 0 5017 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 5019 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 5021 5 5 5 5 5 5 5 5 5 5 ... 0 0 0 5102 7 7 7 7 7 7 7 7 7 7 ... 1 1 1 5103 7 7 7 7 6 7 7 7 7 7 ... 7 7 7 5104 7 7 7 7 7 7 7 7 7 7 ... 0 0 0 5302 6 6 6 6 6 6 6 6 6 6 ... 0 0 0 5409 6 6 6 6 6 6 6 6 6 6 ... 2 2 2 5422 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 5601 0 0 0 0 0 0 0 0 0 0 ... 0 0 0 5603 7 7 7 7 7 7 7 7 7 7 ... 7 7 7 的类型是什么,或者它如何在create table语句中表示,但是您应该能够将这两个查询联合起来:

var