【问题标题】:Create materialized view from multiple tables with identical schemas从具有相同架构的多个表创建物化视图
【发布时间】:2020-09-21 21:16:02
【问题描述】:

我正在尝试在 Redshift 中创建物化视图。 我有 100 个表格的表格

   user_1
   user_2
   ...
   user_100

每个表都有相同的架构。例如:

user_1

| id | user_id | date     | expense |
|----|---------|----------|---------|
| 1  | 1       | 20200521 | 200     |
| 2  | 2       | 20200601 | 100     |
| 3  | 1       | 20200603 | 90      |

user_2

| id | user_id | date     | expense |
|----|---------|----------|---------|
| 1  | 1       | 20200521 | 250     |
| 2  | 3       | 20200204 | 10      |
| 3  | 2       | 20200403 | 50      |

我想做的是创建一个物化视图,其中包含来自所有 100 个表的所有行。 目标是运行查询以计算特定日期之间给定 user_id 的总和(费用)。

所以我的物化视图将是这样的: 用户_1

| id | user_id | date     | expense |
|----|---------|----------|---------|
| 1  | 1       | 20200521 | 200     |
| 2  | 2       | 20200601 | 100     |
| 3  | 1       | 20200603 | 90      |
| 4  | 1       | 20200521 | 250     |
| 5  | 3       | 20200204 | 10      |
| 6  | 2       | 20200403 | 50      |

我在使用此视图的 CREATE 查询时遇到问题。 任何有关创建此视图的查询的指导表示赞赏。 谢谢。

【问题讨论】:

    标签: database amazon-redshift materialized-views


    【解决方案1】:

    UNIONing 桌子怎么样?

    请记住UNION(隐含不同)和UNION ALL 之间的区别,后者只是将两个表中的行合并在一起。

    CREATE MATERIALIZED VIEW users
    AS 
    SELECT * FROM user_1 UNION ALL
    SELECT * FROM user_2 UNION ALL
    SELECT * FROM user_3 UNION ALL
    ...
    SELECT * FROM user_100 
    

    【讨论】:

      猜你喜欢
      • 2019-11-30
      • 1970-01-01
      • 2012-12-13
      • 2015-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 1970-01-01
      相关资源
      最近更新 更多